CDC DIBBs eCR Refiner API

The DIBBs eCR Refiner reduces electronic initial case report (eICR) and Reportability Response (RR) documents down to the data a given reportable condition actually needs, easing storage and performance pressure on eCR pipelines and disease surveillance systems. CDC publishes a 44-operation OpenAPI 3.1.0 contract covering conditions, configurations, custom code sets, section processing, an audit event log and an eCR simulator. The product is self-hosted: public health jurisdictions run the Apache-2.0 container from ghcr.io/cdcgov/dibbs-ecr-refiner, so the spec declares no servers[] block and the base URL is whatever the jurisdiction deploys.

Operations 44

GET /api/user Get User #
GET /api/v1/conditions/ Get Conditions #
GET /api/v1/conditions/{condition_id} Get Condition #
GET /api/v1/configurations/ Get Configurations #
POST /api/v1/configurations/ Create Configuration #
GET /api/v1/configurations/{configuration_id}/serialized Get Serialized Configuration #
GET /api/v1/configurations/{configuration_id} Get Configuration #
PUT /api/v1/configurations/{configuration_id}/code-sets Associate Condition Codeset With Configuration #
DELETE /api/v1/configurations/{configuration_id}/code-sets/{condition_id} Remove Condition Codeset From Configuration #
GET /api/v1/configurations/{configuration_id}/custom-codes/{id} Get Custom Code #
DELETE /api/v1/configurations/{configuration_id}/custom-codes/{id} Delete Custom Code #
POST /api/v1/configurations/{configuration_id}/custom-codes Add Custom Code #
PUT /api/v1/configurations/{configuration_id}/custom-codes Edit Custom Code #
POST /api/v1/configurations/{configuration_id}/custom-codes/upload Upload Custom Codes Csv #
POST /api/v1/configurations/{configuration_id}/custom-codes/confirm Confirm Upload Custom Codes Csv #
POST /api/v1/configurations/{configuration_id}/custom-codes/bulk-delete Bulk Delete Custom Codes #
POST /api/v1/configurations/{configuration_id}/custom-codes/validate Validate Custom Code #
GET /api/v1/configurations/{configuration_id}/export Get Configuration Export #
POST /api/v1/configurations/test Run Configuration Test #
POST /api/v1/configurations/{configuration_id}/sections Insert Custom Section #
DELETE /api/v1/configurations/{configuration_id}/sections Delete Custom Section #
PATCH /api/v1/configurations/{configuration_id}/sections Update Section #
PATCH /api/v1/configurations/{configuration_id}/activate Activate Configuration #
PATCH /api/v1/configurations/{configuration_id}/deactivate Deactivate Configuration #
POST /api/v1/configurations/{configuration_id}/acquire-lock Acquire Configuration Lock #
POST /api/v1/configurations/{configuration_id}/release-lock Release Configuration Lock #
POST /api/v1/configurations/{configuration_id}/set-status Set Codes Status #
GET /api/v1/configurations/{configuration_id}/codes Get Codes #
GET /api/v1/configurations/{configuration_id}/code-counts Get Code Counts #
GET /api/v1/configurations/{configuration_id}/filters Get Code Filters #
POST /api/v1/simulator/discover-configurations Discover Configurations #
POST /api/v1/simulator/upload Simulator Upload #
GET /api/v1/simulator/download/{filename} Download Refined Ecr #
GET /api/v1/events/ Get Events #
GET /api/v1/events/{event_id}/custom-code-uploads Get Custom Code Upload Events #
GET /api/v1/events/export Get Events Export #
GET /api/v1/events/{event_id}/codes/export Get Event Codes Export #
GET /api/v1/releases/ Get Releases Data #
GET /api/v1/code-systems/ Get Code Systems #
PATCH /api/v1/notifications Update User Notifications #
GET /api/v1/tes/diff-details Get Tes Updates #
GET /api/v1/tes/ Get Tes Diff Details #
GET /api/v1/tes/export Export Tes Condition Diff #
GET /api/v1/tes/configurations-to-update Get Configurations To Update #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dibbs-ecr-refiner"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

centers-for-disease-control-and-prevention-dibbs-ecr-refiner-openapi.json Raw ↑
{"openapi": "3.1.0", "info": {"title": "DIBBs eCR Refiner", "description": "Please visit the repo for more info: https://github.com/CDCgov/dibbs-ecr-refiner", "version": "1.0.0"}, "paths": {"/api/user": {"get": {"tags": ["user"], "summary": "Get User", "description": "Returns the current logged-in user's information.\n\nReads user info from the session or token.\n\nReturns:\n    JSON object with user claims if authenticated.\n\nRaises:\n    HTTPException 401 if user not authenticated.", "operationId": "getUser", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/UserResponse"}, {"type": "null"}], "title": "Response Getuser"}}}}}}}, "/api/v1/conditions/": {"get": {"tags": ["conditions"], "summary": "Get Conditions", "description": "Fetches a summary of all available conditions from the database and returns them as a list.\n\nArgs:\n    db (AsyncDatabaseConnection): Database connection.\n\nReturns:\n    list[GetConditionsResponse]: List of all condition summaries.", "operationId": "getConditions", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/GetConditionsResponse"}, "type": "array", "title": "Response Getconditions"}}}}}}}, "/api/v1/conditions/{condition_id}": {"get": {"tags": ["conditions"], "summary": "Get Condition", "description": "Returns information about a given condition.\n\nArgs:\n    condition_id (UUID): ID of the condition\n    db (AsyncDatabaseConnection): Database connection.\n\nRaises:\n    HTTPException: 404 if no condition is found\n\nReturns:\n    GetCondition: Info about the condition", "operationId": "getCondition", "parameters": [{"name": "condition_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Condition Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetConditionResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/": {"get": {"tags": ["configurations"], "summary": "Get Configurations", "description": "Returns a list of configurations based on the logged-in user.\n\nReturns:\n    List of configuration objects.", "operationId": "getConfigurations", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/GetConfigurationsResponse"}, "type": "array", "title": "Response Getconfigurations"}}}}}}, "post": {"tags": ["configurations"], "summary": "Create Configuration", "description": "Create a new configuration for a jurisdiction.", "operationId": "createConfiguration", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateConfigInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateConfigurationResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/serialized": {"get": {"tags": ["configurations"], "summary": "Get Serialized Configuration", "description": "Given an active configuration ID, fetches and returns the serialized configuration file content from S3.\n\nArgs:\n    configuration_id (UUID): The active configuration ID\n    user (DbUser): The logged-in user\n    app_config (AppConfig): The required application environment variables\n    db (AsyncDatabaseConnection): The database connection\n    logger (Logger): The standard app logger\n\nRaises:\n    HTTPException: 403 if not running locally\n    HTTPException: 404 if configuration cannot be found in the user's jurisdiction\n    HTTPException: 400 if the configuration's status is not `active`\n    HTTPException: 404 if the configuration's primary condition is not found\n\nReturns:\n    Response: The serialized configuration file content", "operationId": "getSerializedConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SerializedFiles"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}": {"get": {"tags": ["configurations"], "summary": "Get Configuration", "description": "Get a single configuration by its ID including all associated conditions.", "operationId": "getConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetConfigurationResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/code-sets": {"put": {"tags": ["configurations"], "summary": "Associate Condition Codeset With Configuration", "description": "Associate a specified code set with the given configuration.\n\nArgs:\n    configuration_id (UUID): ID of the configuration\n    body (AssociateCodesetInput): payload containing a condition_id\n    user (dict[str, Any], optional): User making the request\n    db (AsyncDatabaseConnection, optional): Database connection\n\nRaises:\n    HTTPException: 404 if configuration is not found in JD\n    HTTPException: 404 if configuration is not found\n    HTTPException: 409 if configuration is not a draft and therefore not editable\n    HTTPException: 500 if configuration cannot be updated\n\nReturns:\n    AssociateCodesetResponse: ID of updated configuration, the full list of included conditions,\n          and the condition_name", "operationId": "associateConditionWithConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AssociateCodesetInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AssociateCodesetResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/code-sets/{condition_id}": {"delete": {"tags": ["configurations"], "summary": "Remove Condition Codeset From Configuration", "description": "Remove a specified code set from the given configuration.\n\nArgs:\n    configuration_id (UUID): ID of the configuration\n    condition_id (UUID): ID of the condition to remove\n    user (DbUser): User making the request\n    db (AsyncDatabaseConnection): Database connection\n\nRaises:\n    HTTPException: 404 if configuration is not found in JD\n    HTTPException: 404 if condition is not found\n    HTTPException: 409 if trying to remove the main condition\n    HTTPException: 409 if configuration is not a draft and therefore not editable\n    HTTPException: 500 if configuration is cannot be updated\n\nReturns:\n    AssociateCodesetResponse: ID of updated configuration and the full list\n    of included conditions plus condition_name", "operationId": "disassociateConditionWithConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}, {"name": "condition_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Condition Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AssociateCodesetResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/custom-codes/{id}": {"get": {"tags": ["configurations"], "summary": "Get Custom Code", "description": "Fetch a custom code by its ID.\n\nArgs:\n    configuration_id (UUID): The associated configuration ID\n    id (UUID): The custom code ID\n    user (DbUser): The logged-in user\n    db (AsyncDatabaseConnection): The database connection\n\nRaises:\n    HTTPException: 404 if configuration can't be found\n\nReturns:\n    CustomCodeResponse: The custom code response object", "operationId": "getCustomCode", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}, {"name": "id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomCodeResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["configurations"], "summary": "Delete Custom Code", "description": "Delete a custom code from a configuration.\n\nArgs:\n    configuration_id (UUID): The ID of the configuration to modify.\n    id (str): The ID of the custom code.\n    user (dict[str, Any]): The logged-in user.\n    db (AsyncDatabaseConnection): The database connection.\n\nRaises:\n    HTTPException: 400 if id is not provided\n    HTTPException: 404 if configuration can't be found\n    HTTPException: 409 if configuration is not a draft and therefore not editable\n    HTTPException: 500 if configuration can't be updated\n\nReturns:\n    ConfigurationCustomCodeResponse: The updated configuration", "operationId": "deleteCustomCodeFromConfiguration", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Id"}}, {"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomCodeResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/custom-codes": {"post": {"tags": ["configurations"], "summary": "Add Custom Code", "description": "Add a user-defined custom code to a configuration.\n\nArgs:\n    configuration_id (UUID): The ID of the configuration to update.\n    body (AddCustomCodeInput): The custom code information provided by the user.\n    user (dict[str, Any]): The logged-in user.\n    db (AsyncDatabaseConnection): The database connection.\n\nRaises:\n    HTTPException: 404 if configuration isn't found\n    HTTPException: 409 if configuration is not a draft and therefore not editable\n    HTTPException: 500 if custom code can't be added\n\nReturns:\n    ConfigurationCustomCodeResponse: Updated configuration", "operationId": "addCustomCodeToConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AddCustomCodeInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomCodeResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["configurations"], "summary": "Edit Custom Code", "description": "Modify a configuration's custom code based on system_key/code pair.\n\nArgs:\n    configuration_id (UUID): The ID of the configuration to modify.\n    body (UpdateCustomCodeInput): User-provided object containing custom code info.\n    user (dict[str, Any]): The logged-in user.\n    db (AsyncDatabaseConnection): The database connection.\n    logger (Logger): The system logger.\n\nRaises:\n    HTTPException: 409 if configuration is not a draft and therefore not editable\n    HTTPException: 500 if the configuration can't be updated\n\nReturns:\n    ConfigurationCustomCodeResponse: The updated configuration.", "operationId": "editCustomCodeFromConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateCustomCodeInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CustomCodeResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/custom-codes/upload": {"post": {"tags": ["configurations"], "summary": "Upload Custom Codes Csv", "description": "Accepts a CSV payload in JSON body.\n\nExpected CSV headers:\n    code,code_system,display_name\n\nReturns:\n    UploadCustomCodesResponse", "operationId": "uploadCustomCodesCsv", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UploadCustomCodesCsvInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UploadCustomCodesPreviewResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/custom-codes/confirm": {"post": {"tags": ["configurations"], "summary": "Confirm Upload Custom Codes Csv", "description": "Confirm and save custom codes from preview list.", "operationId": "confirmUploadCustomCodesCsv", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConfirmUploadCustomCodesInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/CustomCodeResponse"}, "title": "Response Confirmuploadcustomcodescsv"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/custom-codes/bulk-delete": {"post": {"tags": ["configurations"], "summary": "Bulk Delete Custom Codes", "description": "Deletes custom codes in bulk for a given configuration.\n\nArgs:\n    configuration_id (UUID): The ID of the configuration to modify.\n    body (BulkDeleteCustomCodesInput): The input body containing IDs of the custom codes.\n    user (DbUser): The logged-in user.\n    db (AsyncDatabaseConnection): The database connection.\n\nRaises:\n    HTTPException: 404 if configuration can't be found\n    HTTPException: 409 if configuration is not a draft and therefore not editable\n    HTTPException: 500 if configuration can't be updated\n\nReturns:\n    ConfigurationCustomCodeResponse: The updated configuration", "operationId": "deleteCustomCodes", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkDeleteCustomCodesInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/CustomCodeResponse"}, "title": "Response Deletecustomcodes"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/custom-codes/validate": {"post": {"tags": ["configurations"], "summary": "Validate Custom Code", "description": "Determines whether a custom code update is valid or not.\n\nIf the desired code is already associated with the configuration, then the update is\ninvalid.\n\nArgs:\n    configuration_id (UUID): The configuration ID\n    body (ValidateCustomCodeInput): Body including the code to validate\n    user (DbUser, optional): The logged in user\n    db (AsyncDatabaseConnection, optional): The database connection\n\nReturns:\n    bool: Returns True if the code has not been used, otherwise returns False", "operationId": "validateCustomCodeFromConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ValidateCustomCodeInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ValidateCustomCodeResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/export": {"get": {"tags": ["configurations"], "summary": "Get Configuration Export", "description": "Create a CSV export of a configuration and all associated codes.", "operationId": "getConfigurationExport", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "responses": {"200": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/test": {"post": {"tags": ["configurations"], "summary": "Run Configuration Test", "description": "Runs an inline test of a given configuration against an eICR/RR pair.\n\nThis endpoint orchestrates the validation and refinement process by:\n1. Handling file input, either from a user upload or a default sample file.\n2. Calling the `inline_testing` service, which validates that the specified\n   configuration's condition is reportable in the provided file.\n3. Handling the service response:\n    - If validation fails, raises a 400 Bad Request with a specific error.\n    - If successful, proceeds with the returned refined document.\n4. Packaging the original eICR, RR, and the single refined eICR into a\n   new in-memory zip archive.\n5. Uploading the archive to S3 and generating a pre-signed download URL.\n6. Returning a `ConfigurationTestResponse` with the download URL and details\n   of the successful refinement.\n\nArgs:\n    id: The ID of the configuration to test.\n    uploaded_file: An optional user-provided zip file with an eICR and RR.\n    create_output_zip: Dependency to create a zip archive in memory.\n    upload_zip: Dependency to upload the archive to S3.\n    user: The authenticated user making the request.\n    db: The database connection.\n    sample_zip_path: Path to the default sample zip file.\n    logger: The application logger.\n\nReturns:\n    A response object containing the original eICR, a URL to download the\n    zipped results, and details about the refined condition.", "operationId": "runInlineConfigurationTest", "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_runInlineConfigurationTest"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConfigurationTestResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/sections": {"post": {"tags": ["configurations"], "summary": "Insert Custom Section", "description": "Create a new custom section for a given configuration ID.\n\nArgs:\n    configuration_id (UUID): The ID of the configuration\n    section_input (CustomSectionInput): Desired properties of the section\n    user (DbUser): The logged-in user\n    db (AsyncDatabaseConnection): The database connection", "operationId": "addCustomSection", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AddSectionInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "string", "title": "Response Addcustomsection"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["configurations"], "summary": "Delete Custom Section", "description": "Delete a custom section.\n\nArgs:\n    configuration_id (UUID): ID of the configuration with custom section to delete\n    section_input (DeleteCustomSectionInput): Custom section deletion input\n    user (DbUser): The logged in user\n    db (AsyncDatabaseConnection): The database connection\n\nRaises:\n    HTTPException: 404 if configuration isn't found\n    HTTPException: 409 if configuration isn't a draft\n    HTTPException: 404 if custom section code to delete isn't found\n\nReturns:\n    str: Deleted custom section code", "operationId": "deleteCustomSection", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteSectionInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "string", "title": "Response Deletecustomsection"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["configurations"], "summary": "Update Section", "description": "Update a section entry for a configuration.\n\nArgs:\n    configuration_id (UUID): ID of the configuration to update\n    section_input (SectionUpdateInput): Updated section info\n    user (DbUser): The logged-in user\n    db (AsyncDatabaseConnection): Database connection\n\nRaises:\n    HTTPException: 400 if the code is not valid, code is in use,\n        name is in use, the section is system-skipped\n        (`DisabledSection`) and therefore not configurable, the\n        narrative/action combination is unsupported (e.g.\n        narrative=\"reconstruct\" or \"keep_on_match\" with\n        action=\"retain\"), narrative \"reconstruct\" targets a\n        section without a registered reconstructor, or the\n        section can carry a trigger code and was sent with\n        include=False\n    HTTPException: 404 if configuration isn't found\n    HTTPException: 409 if configuration is not a draft and therefore not editable\n    HTTPException: 500 if section processing can't be updated\n\nReturns:\n    UpdateSectionProcessingResponse: The message to show the user", "operationId": "updateSection", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SectionUpdateInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSectionProcessingResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/activate": {"patch": {"tags": ["configurations"], "summary": "Activate Configuration", "description": "Activate the specified configuration.\n\nArgs:\n    configuration_id (UUID): ID of the configuration to update\n    user (DbUser): The logged-in user\n    logger (Logger): The standard logger\n    db (AsyncDatabaseConnection): Database connection\n\nRaises:\n    HTTPException: 400 if configuration can't be activated because of its current state\n    HTTPException: 404 if configuration can't be found\n    HTTPException: 500 if configuration can't be activated by the server\n\nReturns:\n    ActivateConfigurationResponse: Metadata about the activated condition for confirmation", "operationId": "activateConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConfigurationStatusUpdateResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/deactivate": {"patch": {"tags": ["configurations"], "summary": "Deactivate Configuration", "description": "Deactivate the specified configuration.\n\nArgs:\n    configuration_id (UUID): ID of the configuration to update\n    user (DbUser): The logged-in user\n    logger (Logger): The standard application logger\n    db (AsyncDatabaseConnection): Database connection\n\nRaises:\n    HTTPException: 400 if configuration can't be deactivated because of its current state\n    HTTPException: 404 if configuration can't be found\n    HTTPException: 500 if configuration can't be deactivated by the server\n\nReturns:\n    ConfigurationStatusUpdateResponse: Metadata about the activated condition for confirmation", "operationId": "deactivateConfiguration", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConfigurationStatusUpdateResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/acquire-lock": {"post": {"tags": ["configurations"], "summary": "Acquire Configuration Lock", "description": "Acquire config lock for user.\n\nArgs:\n    configuration_id (UUID): ID of the configuration to lock\n    user (DbUser): The logged-in user\n    db (AsyncDatabaseConnection): Database connection\n\nReturns:\n    Response: 204 No Content on success", "operationId": "acquireConfigurationLock", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/release-lock": {"post": {"tags": ["configurations"], "summary": "Release Configuration Lock", "description": "Release config lock if held by user.\n\nArgs:\n    configuration_id (UUID): ID of the configuration to update\n    user (DbUser): The logged-in user\n    db (AsyncDatabaseConnection): Database connection", "operationId": "releaseConfigurationLock", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/set-status": {"post": {"tags": ["configurations"], "summary": "Set Codes Status", "description": "Sets selected codes to the specified `status` for the given configuration ID.\n\nIf `update_beyond_rendered_set` is false, we update status for only the specified\n`code_ids` within the rendered page.\n\nIf `update_beyond_rendered_set` is true, we skip any codes within `code_ids_to_skip`\nand update status for all other codes that don't get clipped away by the passed-in filters\n\nArgs:\n    configuration_id (UUID): ID of the configuration to update\n    update_beyond_rendered_set (bool): Whether the action should be only within the rendered codes or include all codes.\n    code_ids (list[UUID]): List of code IDs to specifically action. Used in the \"within cursor\" flow.\n    code_ids_to_skip (list[UUID]): List of code IDs to skip since they've been manually actioned by the user.\n    filters (FilterInput): Filter input coming from the client to build the \"complete\" set of codes to bulk select\n    status (Literal['included', 'excluded'): Set codes as 'included' or 'excluded'\n    user (DbUser): The logged-in user\n    db (AsyncDatabaseConnection): Database connection\n\nRaises:\n    HTTPException: 404 if configuration can't be found\n\nReturns:\n    list[UUID]: Code IDs that had their status changed", "operationId": "setCodesStatus", "parameters": [{"name": "configuration_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Configuration Id"}}, {"name": "update_beyond_rendered_set", "in": "query", "required": true, "schema": {"type": "boolean", "title": "Update Beyond Rendered Set"}}, {"name": "status", "in": "query", "required": true, "schema": {"enum": ["included", "excluded"], "type": "string", "title": "Status"}}, {"name": "search", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Search"}}, {"name": "code_systems", "in": "query", "required": false, "schema": {"type": "array", "items": {"type": "string"}, "default": [], "title": "Code Systems"}}, {"name": "sources", "in": "query", "required": false, "schema": {"type": "array", "items": {"type": "string"}, "default": [], "title": "Sources"}}, {"name": "statuses", "in": "query", "required": false, "schema": {"type": "array", "items": {"type": "string"}, "default": [], "title": "Statuses"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_setCodesStatus"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "string", "format": "uuid"}, "title": "Response Setcodesstatus"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/configurations/{configuration_id}/codes": {"get": {"tags": ["configurations"], "summary": "Get Codes", "description": "Fetches all codes associated with a configuration.\n\nArgs:\n    configuration_id (UUID): ID of the configuration to update\n    filters (FilterInput): Filter input coming from the client\n    cursor (str | None): The cursor for the page to start from\n    user (DbUser): The logged-in user\n    logger (Logger): The standard 

# --- truncated at 32 KB (87 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/centers-for-disease-control-and-prevention/refs/heads/main/openapi/centers-for-disease-control-and-prevention-dibbs-ecr-refiner-openapi.json