{
  "openapi": "3.0.1",
  "info": {
    "description": "",
    "title": "CarbonHub API",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.validere.io"
    }
  ],
  "tags": [
    {
      "description": "Activity Log",
      "name": "activities"
    },
    {
      "description": "Asset Groups",
      "name": "asset_groups"
    },
    {
      "description": "Calculator Results",
      "name": "calculator_results"
    },
    {
      "description": "Charts",
      "name": "charts"
    },
    {
      "description": "Comments",
      "name": "comments"
    },
    {
      "description": "Company Feature Flags",
      "name": "company_feature_flags"
    },
    {
      "description": "Credit Owners",
      "name": "credit_owner"
    },
    {
      "description": "Company <> Equipment Type Groups",
      "name": "company_equipment_type_groups"
    },
    {
      "description": "Company Unit Configuration",
      "name": "company_unit_config"
    },
    {
      "description": "Company",
      "name": "company"
    },
    {
      "description": "Manage Custom Attribute Definitions",
      "name": "custom_attribute_definition"
    },
    {
      "description": "Dashboards",
      "name": "dashboards"
    },
    {
      "description": "Manage Device Types",
      "name": "device_types"
    },
    {
      "description": "Manage Devices",
      "name": "devices"
    },
    {
      "description": "Default Record Value Configurations",
      "name": "default_record_value_configuration"
    },
    {
      "description": "Emissions Aggregation",
      "name": "emissions"
    },
    {
      "description": "Emission Calculator",
      "name": "emissions_calculator"
    },
    {
      "description": "Manage Equipment",
      "name": "equipment"
    },
    {
      "description": "Equipment Emissions",
      "name": "equipment_emissions"
    },
    {
      "description": "Company specific equipment type defaults",
      "name": "equipment_type_defaults"
    },
    {
      "description": "Manage Equipment Types",
      "name": "equipment_types"
    },
    {
      "description": "Estimation Methods",
      "name": "estimation_methods"
    },
    {
      "description": "Estimation Methods Default Records",
      "name": "estimation_methods_default_records"
    },
    {
      "description": "Event Categories",
      "name": "event_categories"
    },
    {
      "description": "Event Schemas",
      "name": "event_schemas"
    },
    {
      "description": "Emission Events",
      "name": "events"
    },
    {
      "description": "Manage Facilities",
      "name": "facilities"
    },
    {
      "description": "Feature Flags",
      "name": "feature_flags"
    },
    {
      "description": "Manage Flows",
      "name": "flows"
    },
    {
      "description": "Form Categories",
      "name": "form_categories"
    },
    {
      "description": "Form Schemas",
      "name": "form_schemas"
    },
    {
      "description": "Form Submissions",
      "name": "form_submissions"
    },
    {
      "description": "Bulk Job status",
      "name": "job"
    },
    {
      "description": "Manage Group Categories",
      "name": "group_categories"
    },
    {
      "description": "Ledger",
      "name": "ledger"
    },
    {
      "description": "Manage Measurement series",
      "name": "measurement_series"
    },
    {
      "description": "Manage Measurement Types",
      "name": "measurement_types"
    },
    {
      "description": "Manage Measurements",
      "name": "measurements"
    },
    {
      "description": "Manage Networks",
      "name": "networks"
    },
    {
      "description": "Reports",
      "name": "reports"
    },
    {
      "description": "Permission",
      "name": "permissions"
    },
    {
      "description": "Project Groups",
      "name": "project_group"
    },
    {
      "description": "Manage Records",
      "name": "records"
    },
    {
      "description": "Reporting Groups",
      "name": "reporting_groups"
    },
    {
      "description": "Roles",
      "name": "roles"
    },
    {
      "description": "Types used across the APIs",
      "name": "type_metadata"
    },
    {
      "description": "User",
      "name": "users"
    },
    {
      "description": "User Unit Configuration",
      "name": "user_unit_config"
    },
    {
      "description": "Manage User Groups",
      "name": "user_groups"
    },
    {
      "description": "Workflow Categories",
      "name": "workflow_categories"
    },
    {
      "description": "Workflow Templates",
      "name": "workflow_templates"
    },
    {
      "description": "Workflow",
      "name": "workflows"
    },
    {
      "description": "Workflow Tasks",
      "name": "workflow_tasks"
    },
    {
      "description": "Templated Configurations",
      "name": "templated_configurations"
    },
    {
      "description": "Assets",
      "name": "assets"
    }
  ],
  "security": [
    {
      "Staging": []
    },
    {
      "Integration": []
    },
    {
      "Local": []
    }
  ],
  "paths": {
    "/app/v1/activities/search": {
      "post": {
        "operationId": "search_activities",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/ActivitySort"
                  },
                  {
                    "$ref": "#/components/schemas/ActivityFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedActivityList"
                }
              }
            },
            "description": "Successfully operation"
          }
        },
        "summary": "Search and list Activities",
        "tags": [
          "activities"
        ]
      }
    },
    "/app/v1/activities/{resource_type}/search": {
      "post": {
        "operationId": "search_activities_resource_type",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/ActivitySort"
                  },
                  {
                    "$ref": "#/components/schemas/ActivityFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedActivityList"
                }
              }
            },
            "description": "Successfully operation"
          }
        },
        "summary": "Search and list Activities for a resource type",
        "tags": [
          "activities"
        ]
      }
    },
    "/app/v1/asset_groups": {
      "post": {
        "operationId": "create_asset_group",
        "deprecated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetGroupCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetGroupWithAssets"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create an asset group",
        "tags": [
          "asset_groups"
        ]
      }
    },
    "/app/v2/asset_groups": {
      "post": {
        "operationId": "create_asset_group_v2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetGroupCreateV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetGroupWithAssets"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create an asset group",
        "tags": [
          "asset_groups"
        ]
      }
    },
    "/app/v1/asset_groups/{id}": {
      "get": {
        "operationId": "get_asset_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          },
          {
            "$ref": "#/components/parameters/AssetGroupId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetGroupWithAssets"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get an asset group",
        "tags": [
          "asset_groups"
        ]
      },
      "put": {
        "operationId": "put_asset_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetGroupUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update an Asset Group",
        "tags": [
          "asset_groups"
        ]
      },
      "delete": {
        "operationId": "delete_asset_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete an asset group",
        "tags": [
          "asset_groups"
        ]
      }
    },
    "/app/v1/asset_groups/{id}/asset": {
      "put": {
        "operationId": "update_asset_group_assets",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetGroupAssetsUpdate"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update all the assets in an asset group.",
        "description": "Update all the assets in an asset group. Also updates estimation methods and default calculator input records that reference these AssetGroupAssets.",
        "tags": [
          "asset_groups"
        ]
      }
    },
    "/app/v1/asset_groups/{id}/asset/{asset_id}": {
      "put": {
        "operationId": "add_asset_to_asset_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          },
          {
            "$ref": "#/components/parameters/AssetId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "is_prorated": {
                    "type": "boolean"
                  },
                  "default_values": {
                    "$ref": "#/components/schemas/CalculatorInputs",
                    "example": {
                      "volume": {
                        "value": 5,
                        "unit": "e3m3",
                        "measurement_type": "volume",
                        "measurement_quantity": "volume"
                      }
                    }
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetGroupAsset"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Add an asset to an asset group",
        "tags": [
          "asset_groups"
        ]
      },
      "delete": {
        "operationId": "remove_asset_to_asset_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          },
          {
            "$ref": "#/components/parameters/AssetId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove an asset to an asset group",
        "tags": [
          "asset_groups"
        ]
      }
    },
    "/app/v1/asset_groups/search": {
      "post": {
        "operationId": "search_asset_groups",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/AssetGroupSort"
                  },
                  {
                    "$ref": "#/components/schemas/AssetGroupFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedAssetGroupWithAssetsList"
                }
              }
            },
            "description": "Successfully something"
          }
        },
        "summary": "Search and list Asset Groups",
        "tags": [
          "asset_groups"
        ]
      }
    },
    "/app/v1/calculator_results": {
      "post": {
        "operationId": "calculator_results",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/CalculatorResultSort"
                  },
                  {
                    "$ref": "#/components/schemas/CalculatorResultFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedAggregatedCalculatorResults"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search and aggregate Calculator Result",
        "tags": [
          "calculator_results"
        ]
      }
    },
    "/app/v1/calculator_results/export": {
      "post": {
        "operationId": "export_calculator_results",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CalculatorResultSort"
                  },
                  {
                    "$ref": "#/components/schemas/CalculatorResultFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Export Calculator Results",
        "tags": [
          "calculator_results"
        ]
      }
    },
    "/app/v1/calculator_results/filters": {
      "get": {
        "operationId": "get_calculator_results_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          },
          {
            "$ref": "#/components/parameters/FilterStatus"
          },
          {
            "$ref": "#/components/parameters/FilterCreatedBy"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedCalculatorResultFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "calculator_results"
        ]
      },
      "post": {
        "operationId": "post_calculator_results_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculatorResultFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorResultFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "calculator_results"
        ]
      }
    },
    "/app/v1/calculator_results/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_calculator_results_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "calculator_results"
        ]
      },
      "put": {
        "operationId": "put_calculator_results_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculatorResultFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorResultFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "calculator_results"
        ]
      }
    },
    "/app/v1/charts": {
      "post": {
        "operationId": "create_chart",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChartCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Chart"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a chart",
        "tags": [
          "charts"
        ]
      }
    },
    "/app/v1/charts/{id}": {
      "delete": {
        "operationId": "delete_chart",
        "parameters": [
          {
            "$ref": "#/components/parameters/ChartId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a chart",
        "tags": [
          "charts"
        ]
      },
      "get": {
        "operationId": "get_chart",
        "parameters": [
          {
            "$ref": "#/components/parameters/ChartId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Chart"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a chart",
        "tags": [
          "charts"
        ]
      },
      "put": {
        "operationId": "put_chart",
        "parameters": [
          {
            "$ref": "#/components/parameters/ChartId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChartUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Chart"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a Chart",
        "tags": [
          "charts"
        ]
      }
    },
    "/app/v1/company_unit_config/search": {
      "post": {
        "operationId": "search_company_unit_config",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/UnitConfigSort"
                  },
                  {
                    "$ref": "#/components/schemas/UnitConfigFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedCompanyUnitConfig"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Search company unit configs",
        "tags": [
          "company_unit_config"
        ]
      }
    },
    "/app/v1/company_unit_config/{measurement_type}": {
      "get": {
        "operationId": "get_company_unit_config",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyUnitConfig"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a company unit config",
        "tags": [
          "company_unit_config"
        ]
      },
      "put": {
        "operationId": "upsert_company_unit_config",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitConfigUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyUnitConfig"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create or update a company unit config",
        "tags": [
          "company_unit_config"
        ]
      },
      "delete": {
        "operationId": "delete_company_unit_config",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a company unit configuration",
        "tags": [
          "company_unit_config"
        ]
      }
    },
    "/app/v1/company_unit_config/filters": {
      "get": {
        "operationId": "get_company_unit_config_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedUnitConfigFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "company_unit_config"
        ]
      },
      "post": {
        "operationId": "post_company_unit_config_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitConfigFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnitConfigFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "company_unit_config"
        ]
      }
    },
    "/app/v1/company_unit_config/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_company_unit_config_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "company_unit_config"
        ]
      },
      "put": {
        "operationId": "put_company_unit_config_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitConfigFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnitConfigFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "company_unit_config"
        ]
      }
    },
    "/app/v1/user_unit_config/search": {
      "post": {
        "operationId": "search_user_unit_config",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/UnitConfigSort"
                  },
                  {
                    "$ref": "#/components/schemas/UnitConfigFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedUserUnitConfig"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Search user unit configs",
        "tags": [
          "user_unit_config"
        ]
      }
    },
    "/app/v1/user_unit_config/{measurement_type}": {
      "get": {
        "operationId": "get_user_unit_config",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserUnitConfig"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a user unit config",
        "tags": [
          "user_unit_config"
        ]
      },
      "put": {
        "operationId": "upsert_user_unit_config",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitConfigUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserUnitConfig"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create or update a user unit config",
        "tags": [
          "user_unit_config"
        ]
      },
      "delete": {
        "operationId": "delete_user_unit_config",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a user unit configuration",
        "tags": [
          "user_unit_config"
        ]
      }
    },
    "/app/v1/user_unit_config/filters": {
      "get": {
        "operationId": "get_user_unit_config_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedUnitConfigFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "user_unit_config"
        ]
      },
      "post": {
        "operationId": "post_user_unit_config_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitConfigFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnitConfigFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "user_unit_config"
        ]
      }
    },
    "/app/v1/user_unit_config/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_user_unit_config_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "user_unit_config"
        ]
      },
      "put": {
        "operationId": "put_user_unit_config_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitConfigFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnitConfigFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "user_unit_config"
        ]
      }
    },
    "/app/v1/users": {
      "post": {
        "operationId": "create_user",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ICreateUserInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IUser"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a user",
        "tags": [
          "users"
        ]
      }
    },
    "/app/v1/users/search": {
      "post": {
        "operationId": "search_users",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/UserSort"
                  },
                  {
                    "$ref": "#/components/schemas/UserFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedUserList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search users",
        "tags": [
          "users"
        ]
      }
    },
    "/app/v1/users/myself": {
      "get": {
        "operationId": "get_user_myself",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserWithCompanies"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get the current user info",
        "tags": [
          "users"
        ]
      }
    },
    "/app/v1/users/{id}": {
      "get": {
        "operationId": "get_user",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IUser"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a user",
        "tags": [
          "users"
        ]
      },
      "put": {
        "operationId": "update_user",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IUpdateUserInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IUser"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a user",
        "tags": [
          "users"
        ]
      },
      "delete": {
        "operationId": "delete_user",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a user",
        "tags": [
          "users"
        ]
      }
    },
    "/app/v1/users/{id}/groups": {
      "get": {
        "deprecated": true,
        "operationId": "list_user_groups",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoleMembershipWithRole"
                  }
                }
              }
            }
          }
        },
        "summary": "List groups a user belongs to",
        "tags": [
          "users"
        ]
      }
    },
    "/app/v1/users/{id}/roles": {
      "get": {
        "operationId": "list_user_roles",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoleMembershipWithRole"
                  }
                }
              }
            }
          }
        },
        "summary": "List roles a user belongs to",
        "tags": [
          "users"
        ]
      }
    },
    "/app/v1/users/{id}/permissions/decision": {
      "post": {
        "operationId": "get_user_permission_decision",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PermissionDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionDecision"
                }
              }
            }
          }
        },
        "summary": "Check whether a user has been granted permissions",
        "tags": [
          "users"
        ]
      }
    },
    "/app/v1/users/{id}/permissions": {
      "get": {
        "operationId": "get_user_permission",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPermissions"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get user permission",
        "tags": [
          "users"
        ]
      }
    },
    "/app/v1/roles": {
      "post": {
        "operationId": "create_role",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a role",
        "tags": [
          "roles"
        ]
      }
    },
    "/app/v1/roles/search": {
      "post": {
        "operationId": "search_roles",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/RoleSort"
                  },
                  {
                    "$ref": "#/components/schemas/RoleFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedRoleList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Must be Company member -  Search roles",
        "tags": [
          "roles"
        ]
      }
    },
    "/app/v1/roles/{role_id}": {
      "get": {
        "operationId": "get_role",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Must be Company member - Get a role",
        "tags": [
          "roles"
        ]
      },
      "put": {
        "operationId": "update_role",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a role",
        "tags": [
          "roles"
        ]
      },
      "delete": {
        "operationId": "delete_role",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a role",
        "tags": [
          "roles"
        ]
      }
    },
    "/app/v1/roles/{role_id}/members": {
      "get": {
        "operationId": "list_role_members",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoleMembershipWithUser"
                  }
                }
              }
            }
          }
        },
        "summary": "Must be Company member - Show Memberships for a role",
        "tags": [
          "roles"
        ]
      }
    },
    "/app/v1/roles/{role_id}/members/{member_id}": {
      "put": {
        "operationId": "add_member",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          },
          {
            "$ref": "#/components/parameters/MemberId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add a user to a role",
        "tags": [
          "roles"
        ]
      },
      "delete": {
        "operationId": "remove_member",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          },
          {
            "$ref": "#/components/parameters/MemberId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove a user from a role",
        "tags": [
          "roles"
        ]
      }
    },
    "/app/v1/roles/{role_id}/permissions": {
      "put": {
        "operationId": "update_role_permission",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PermissionsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionsOutput"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update role permission",
        "tags": [
          "roles"
        ]
      },
      "get": {
        "operationId": "get_role_permission",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionsOutput"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get role permission",
        "tags": [
          "roles"
        ]
      }
    },
    "/app/v1/roles/{role_id}/permissions/{permission_name}": {
      "put": {
        "operationId": "update_single_role_permission",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          },
          {
            "$ref": "#/components/parameters/PermissionNamePath"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SinglePermissionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionsOutput"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update single permission",
        "tags": [
          "roles"
        ]
      },
      "delete": {
        "operationId": "remove_single_role_permission",
        "parameters": [
          {
            "$ref": "#/components/parameters/RoleId"
          },
          {
            "$ref": "#/components/parameters/PermissionNamePath"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove single permission",
        "tags": [
          "roles"
        ]
      }
    },
    "/app/v1/user_groups": {
      "post": {
        "operationId": "create_user_group",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAndUpdateUserGroupInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a user group",
        "tags": [
          "user_groups"
        ]
      }
    },
    "/app/v1/user_groups/search": {
      "post": {
        "operationId": "search_user_groups",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/UserGroupSort"
                  },
                  {
                    "$ref": "#/components/schemas/UserGroupFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedUserGroupList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search user groups",
        "tags": [
          "user_groups"
        ]
      }
    },
    "/app/v1/user_groups/{user_group_id}": {
      "get": {
        "operationId": "get_user_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserGroupId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a user group",
        "tags": [
          "user_groups"
        ]
      },
      "put": {
        "operationId": "update_user_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserGroupId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAndUpdateUserGroupInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a user group",
        "tags": [
          "user_groups"
        ]
      },
      "delete": {
        "operationId": "delete_user_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a user group",
        "tags": [
          "user_groups"
        ]
      }
    },
    "/app/v1/user_groups/{user_group_id}/members": {
      "get": {
        "operationId": "list_user_group_members",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserGroupMembershipWithUser"
                  }
                }
              }
            }
          }
        },
        "summary": "Show Memberships for a user group",
        "tags": [
          "user_groups"
        ]
      }
    },
    "/app/v1/user_groups/{user_group_id}/members/{member_id}": {
      "put": {
        "operationId": "add_user_group_member",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserGroupId"
          },
          {
            "$ref": "#/components/parameters/MemberId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add a user to a user group",
        "tags": [
          "user_groups"
        ]
      },
      "delete": {
        "operationId": "remove_user_group_member",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserGroupId"
          },
          {
            "$ref": "#/components/parameters/MemberId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove a user from a user group",
        "tags": [
          "user_groups"
        ]
      }
    },
    "/app/v1/companies": {
      "post": {
        "operationId": "create_company",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ICreateCompanyWithAdminInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ICompany"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Must be System Admin - Create a company",
        "tags": [
          "company"
        ]
      }
    },
    "/app/v1/companies/search": {
      "post": {
        "operationId": "search_companies",
        "parameters": [
          {
            "$ref": "#/components/parameters/TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/CompanySort"
                  },
                  {
                    "$ref": "#/components/schemas/CompanyFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedCompanyList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Must be System Admin - Search companies",
        "tags": [
          "company"
        ]
      }
    },
    "/app/v1/companies/{company_id}": {
      "get": {
        "operationId": "get_company",
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          },
          {
            "$ref": "#/components/parameters/TenantId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ICompany"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Must be System Admin or Company member - Get a company",
        "tags": [
          "company"
        ]
      },
      "put": {
        "operationId": "update_company",
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IUpdateCompanyInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ICompany"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Must be System Admin - Update a company",
        "tags": [
          "company"
        ]
      },
      "delete": {
        "operationId": "delete_company",
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Must be System Admin - Delete a company",
        "tags": [
          "company"
        ]
      }
    },
    "/app/v1/feature_flags/search": {
      "post": {
        "operationId": "search_feature_flags",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FeatureFlagsFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFeatureFlagsList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search feature flags",
        "tags": [
          "feature_flags"
        ]
      }
    },
    "/app/v1/feature_flags/{name}": {
      "get": {
        "operationId": "get_feature_flag",
        "parameters": [
          {
            "$ref": "#/components/parameters/FeatureFlagId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeatureFlag"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a feature flag",
        "tags": [
          "feature_flags"
        ]
      }
    },
    "/app/v1/comments/{comment_id}": {
      "put": {
        "operationId": "update_comment",
        "parameters": [
          {
            "$ref": "#/components/parameters/CommentId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IUpdateCommentInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IComment"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update comment",
        "tags": [
          "comments"
        ]
      },
      "delete": {
        "operationId": "delete_comment",
        "parameters": [
          {
            "$ref": "#/components/parameters/CommentId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IComment"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Delete comment",
        "tags": [
          "comments"
        ]
      }
    },
    "/app/v1/comments/{entity_type}/{entity_id}": {
      "get": {
        "operationId": "get_comments",
        "parameters": [
          {
            "$ref": "#/components/parameters/CommentEntityType"
          },
          {
            "$ref": "#/components/parameters/CommentEntityId"
          },
          {
            "$ref": "#/components/parameters/CommentAdditionalIdentifier"
          },
          {
            "$ref": "#/components/parameters/CommentCreatedBefore"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IListCommentResponse"
                }
              }
            },
            "description": "Successfully retrieved comments"
          }
        },
        "summary": "List comments for a specific entity",
        "tags": [
          "comments"
        ]
      },
      "post": {
        "operationId": "create_comment",
        "parameters": [
          {
            "$ref": "#/components/parameters/CommentEntityType"
          },
          {
            "$ref": "#/components/parameters/CommentEntityId"
          },
          {
            "$ref": "#/components/parameters/CommentAdditionalIdentifier"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ICreateCommentInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ICommentResponse"
                }
              }
            },
            "description": "Successfully create comment and attach comment to entity"
          }
        },
        "summary": "Create comment",
        "tags": [
          "comments"
        ]
      }
    },
    "/app/v1/comments/count/{entity_type}/{entity_ids}": {
      "get": {
        "operationId": "get_comment_count",
        "parameters": [
          {
            "$ref": "#/components/parameters/CommentEntityType"
          },
          {
            "$ref": "#/components/parameters/CommentEntityIds"
          },
          {
            "$ref": "#/components/parameters/CommentAdditionalIdentifier"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ICommentCountResponse"
                }
              }
            },
            "description": "Successfully retrieved comment count"
          }
        },
        "summary": "Count comments",
        "tags": [
          "comments"
        ]
      }
    },
    "/app/v1/company_feature_flags/search": {
      "post": {
        "operationId": "search_all_company_feature_flags",
        "parameters": [
          {
            "$ref": "#/components/parameters/TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/AllCompanyFeatureFlagsFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedCompanyFeatureFlagsList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search all company feature flags",
        "tags": [
          "company_feature_flags"
        ]
      }
    },
    "/app/v1/company_feature_flags/{company_id}/search": {
      "post": {
        "operationId": "search_company_feature_flags",
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/CompanyFeatureFlagsFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedCompanyFeatureFlagsList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Must be Company member - Search company feature flags",
        "tags": [
          "company_feature_flags"
        ]
      }
    },
    "/app/v1/company_feature_flags/{company_id}/{feature_flag_name}": {
      "put": {
        "operationId": "create_company_feature_flag",
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          },
          {
            "$ref": "#/components/parameters/FeatureFlagName"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyFeatureFlag"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a company feature flag",
        "tags": [
          "company_feature_flags"
        ]
      },
      "delete": {
        "operationId": "delete_company_feature_flag",
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          },
          {
            "$ref": "#/components/parameters/FeatureFlagName"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a company feature flag",
        "tags": [
          "company_feature_flags"
        ]
      }
    },
    "/app/v1/permissions": {
      "get": {
        "operationId": "list_permissions",
        "parameters": [
          {
            "$ref": "#/components/parameters/PermissionName"
          },
          {
            "$ref": "#/components/parameters/PermissionIsFeatureEnabled"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/Permission"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List permissions",
        "tags": [
          "permissions"
        ]
      }
    },
    "/app/v1/default_record_value_configurations": {
      "post": {
        "operationId": "upsert_default_record_value_configuration",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DefaultRecordValueConfigurationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultRecordValueConfiguration"
                }
              }
            }
          }
        },
        "summary": "Upsert a default record value configuration for an asset",
        "tags": [
          "default_record_value_configuration"
        ]
      }
    },
    "/app/v1/default_record_value_configurations/apply": {
      "post": {
        "operationId": "apply_default_record_value_configuration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ApplyDefaultRecordValueConfigurationDefaultsFilterInput"
                  },
                  {
                    "$ref": "#/components/schemas/OverwriteAllValues"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Record"
                  }
                }
              }
            }
          }
        },
        "summary": "Apply default record value configurations for a set of year months",
        "tags": [
          "default_record_value_configuration"
        ]
      }
    },
    "/app/v1/default_record_value_configurations/search": {
      "post": {
        "operationId": "search_default_record_value_configuration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/DefaultRecordValueConfigurationSort"
                  },
                  {
                    "properties": {
                      "filter": {
                        "$ref": "#/components/schemas/DefaultRecordValueConfigurationFilter"
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PagedDefaultRecordValueConfigurationsList"
                  }
                }
              }
            }
          }
        },
        "summary": "Search default record value configurations",
        "tags": [
          "default_record_value_configuration"
        ]
      }
    },
    "/app/v1/default_record_value_configurations/{id}": {
      "get": {
        "operationId": "get_default_record_value_configuration",
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultRecordValueConfigurationId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultRecordValueConfiguration"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a default record value configuration",
        "tags": [
          "default_record_value_configuration"
        ]
      },
      "delete": {
        "operationId": "delete_default_record_value_configuration",
        "parameters": [
          {
            "$ref": "#/components/parameters/DefaultRecordValueConfigurationId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a default record value configuration",
        "tags": [
          "default_record_value_configuration"
        ]
      }
    },
    "/app/v1/estimation_methods/": {
      "post": {
        "operationId": "bulk_add_estimation_method",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BulkAddEstimationMethodToEntitiesRequest"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateEstimationMethodsBulkResponse"
                }
              }
            },
            "description": "Successfully Created Estimation Methods in bulk"
          }
        },
        "summary": "Bulk create estimation methods",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/run": {
      "post": {
        "deprecated": true,
        "operationId": "run_estimation_methods",
        "parameters": [
          {
            "$ref": "#/components/parameters/PreviewCalculation"
          },
          {
            "$ref": "#/components/parameters/PromoteCalculation"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculatorRunsFilter"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorRunsResponse"
                }
              }
            },
            "description": "Successfully ran estimation method calculations"
          }
        },
        "summary": "Run calculators based on filtered configurations",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v2/estimation_methods/run": {
      "post": {
        "operationId": "run_estimation_methods_v2",
        "parameters": [
          {
            "$ref": "#/components/parameters/PreviewCalculation"
          },
          {
            "$ref": "#/components/parameters/PromoteCalculation"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculatorRunsFilter"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorRunsBulkResponse"
                }
              }
            },
            "description": "Successfully ran estimation method calculations"
          }
        },
        "summary": "Bulk run calculators based on filtered configurations",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v2/estimation_methods/run_async": {
      "post": {
        "operationId": "run_async_estimation_methods_v2",
        "parameters": [
          {
            "$ref": "#/components/parameters/PreviewCalculation"
          },
          {
            "$ref": "#/components/parameters/PromoteCalculation"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculatorRunsFilter"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorAsyncRunsBulkResponse"
                }
              }
            },
            "description": "Successfully starts an asynchronous job to run estimation method calculations"
          }
        },
        "summary": "Start an asynchronous job to bulk run calculators based on filtered configurations",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/search": {
      "post": {
        "operationId": "search_estimation_methods",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/EstimationMethodSort"
                  },
                  {
                    "$ref": "#/components/schemas/EstimationMethodFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedEstimationMethodList"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              }
            },
            "description": "Successfully something"
          }
        },
        "summary": "Search and list Estimation Methods",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/search/configurations": {
      "post": {
        "operationId": "search_estimation_method_configurations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/EstimationMethodConfigurationSort"
                  },
                  {
                    "$ref": "#/components/schemas/EstimationMethodConfigurationFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedEstimationMethodWithConfigurationList"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              }
            },
            "description": "Successfully something"
          }
        },
        "summary": "Search and list Estimation Methods with calculator configs and runs",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/export": {
      "post": {
        "operationId": "export_estimation_methods",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/EstimationMethodSort"
                  },
                  {
                    "$ref": "#/components/schemas/EstimationMethodFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "A successful with the link to download report"
          }
        },
        "summary": "Export estimation methods based on search input",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/export/configurations": {
      "post": {
        "operationId": "export_estimation_method_configurations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/EstimationMethodConfigurationSort"
                  },
                  {
                    "$ref": "#/components/schemas/EstimationMethodConfigurationFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "A successful with the link to download report"
          }
        },
        "summary": "Search and export Estimation Methods with calculator configs and runs",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}": {
      "post": {
        "operationId": "add_estimation_method",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddEstimationMethodToEntityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodWithEntityInfoResponse"
                }
              }
            },
            "description": "Successfully Added Estimation Method to Entity"
          }
        },
        "summary": "Add Estimation Method to Entity",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}": {
      "get": {
        "operationId": "get_estimation_method",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/parameters-EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/parameters-Period"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodWithReportingGroupsResponse"
                }
              }
            },
            "description": "Successfully retrieved an estimation event"
          }
        },
        "summary": "Get an estimation method",
        "tags": [
          "estimation_methods"
        ]
      },
      "put": {
        "operationId": "update_estimation_method",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/parameters-EstimationMethodId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateEstimationMethodRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateEstimationMethodResponse"
                }
              }
            },
            "description": "Successfully updated an estimation event"
          }
        },
        "summary": "Update an estimation method",
        "tags": [
          "estimation_methods"
        ]
      },
      "delete": {
        "operationId": "delete_estimation_method",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete an estimation method",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/runs": {
      "get": {
        "operationId": "list_estimation_method_runs",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "$ref": "#/components/schemas/CalculatorRunsResponse"
                    }
                  ]
                }
              }
            },
            "description": "Successfully return runs for a given estimation method"
          }
        },
        "summary": "List runs for a given estimation method",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/configuration/{year_month}": {
      "get": {
        "operationId": "get_estimation_method_configuration",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodConfiguration"
                }
              }
            },
            "description": "Successfully retrieved an estimation method configuration"
          }
        },
        "summary": "Get an estimation method configuration",
        "tags": [
          "estimation_methods"
        ]
      },
      "put": {
        "operationId": "update_estimation_method_configuration",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetCalculatorConfigurationRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodConfiguration"
                }
              }
            },
            "description": "Successfully updated an estimation method configuration"
          }
        },
        "summary": "Update an estimation method configuration",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/configuration/{year_month}/apply_defaults": {
      "put": {
        "operationId": "apply_defaults_estimation_method_configuration",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/parameters-EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/parameters-YearMonth"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplyDefaultsEstimationMethodConfigurationResponse"
                }
              }
            },
            "description": "Successfully set defaults on the calculator configuration"
          }
        },
        "summary": "Re-apply defaults to a calculator configuration",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/configurations/apply_defaults": {
      "put": {
        "operationId": "bulk_apply_defaults_estimation_method_configuration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "estimation_method_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "year_month": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/BulkResponse"
                    },
                    {
                      "properties": {
                        "data": {
                          "description": "Dictionary of results where the key is {Estimation method ID}_{Year month}",
                          "type": "object",
                          "additionalProperties": {
                            "properties": {
                              "status": {
                                "$ref": "#/components/schemas/BulkItemStatus"
                              },
                              "error": {
                                "type": "string"
                              },
                              "errors": {
                                "type": "array",
                                "description": "List of errors",
                                "items": {
                                  "$ref": "#/components/schemas/CalculationResultError"
                                }
                              },
                              "data": {
                                "type": "object",
                                "properties": {
                                  "estimation_method_id": {
                                    "type": "string",
                                    "format": "UUID"
                                  },
                                  "year_month": {
                                    "type": "string"
                                  },
                                  "calculation_status": {
                                    "$ref": "#/components/schemas/CalculationStatus"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Successfully set defaults on the calculator configurations"
          }
        },
        "summary": "Re-apply defaults to multiple calculator configurations",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/configurations/apply_defaults_async": {
      "post": {
        "operationId": "bulk_apply_defaults_estimation_method_configuration_async",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/EstimationMethodConfigurationFilter"
                  },
                  {
                    "properties": {
                      "year_months": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "example": 202212
                        }
                      }
                    }
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/BulkResponse"
                    },
                    {
                      "properties": {
                        "job": {
                          "$ref": "#/components/schemas/Job"
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Successfully starts an asynchronous job to set defaults on the calculator configurations"
          }
        },
        "summary": "Start an asynchronous job to re-apply defaults to multiple calculator configurations",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/configuration/{year_month}/run": {
      "get": {
        "operationId": "get_estimation_method_configuration_run",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorRunSourceResponse"
                }
              }
            },
            "description": "Successfully retrieved a calculator run"
          }
        },
        "summary": "Get a calculator run",
        "tags": [
          "estimation_methods"
        ]
      },
      "post": {
        "operationId": "run_estimation_method_configuration",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/PreviewCalculation"
          },
          {
            "$ref": "#/components/parameters/PromoteCalculation"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorRunSourceResponse"
                }
              }
            },
            "description": "Successfully ran estimation method calculations"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorRun422Error"
                }
              }
            },
            "description": "Calculator validation error"
          }
        },
        "summary": "Run estimation method calculator for a single period",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/record/{year_month}/{input_name}": {
      "put": {
        "operationId": "set_calculator_input_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculatorInputRecordInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorInputRecord"
                }
              }
            },
            "description": "Successfully updated calculator input record"
          }
        },
        "summary": "Set the input record for a given calculator configuration",
        "tags": [
          "estimation_methods"
        ]
      },
      "get": {
        "operationId": "get_calculator_input_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorInputRecord"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get the input record for a given calculator configuration",
        "tags": [
          "estimation_methods"
        ]
      },
      "delete": {
        "operationId": "delete_calculator_input_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete the input record for a given calculator configuration",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/record/{year_month}/{target_asset_id}/{input_name}": {
      "put": {
        "operationId": "set_calculator_input_record_target_asset",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodTargetAssetId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculatorInputRecordInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorInputRecord"
                }
              }
            },
            "description": "Successfully updated calculator input record on target asset"
          }
        },
        "summary": "Set the input record for a given calculator configuration and target asset",
        "tags": [
          "estimation_methods"
        ]
      },
      "get": {
        "operationId": "get_calculator_input_record_target_asset",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodTargetAssetId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalculatorInputRecord"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get the input record for a given calculator configuration and target asset",
        "tags": [
          "estimation_methods"
        ]
      },
      "delete": {
        "operationId": "delete_calculator_input_record_target_asset",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodTargetAssetId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete the input record for a given calculator configuration and target asset",
        "tags": [
          "estimation_methods"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/default_records": {
      "get": {
        "operationId": "list_estimation_method_default_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEstimationMethodDefaultRecords"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              }
            },
            "description": "Successfully returns the list of default input records for a given estimation method"
          }
        },
        "summary": "List the default input records for a given estimation method",
        "tags": [
          "estimation_methods_default_records"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/default_records/{input_name}": {
      "post": {
        "operationId": "create_estimation_method_default_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimationMethodDefaultRecordInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodDefaultRecord"
                }
              }
            },
            "description": "Successfully returns the default input record for a given estimation method"
          }
        },
        "summary": "Create the default input record for a given estimation method",
        "tags": [
          "estimation_methods_default_records"
        ]
      },
      "put": {
        "operationId": "update_estimation_method_default_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimationMethodDefaultRecordInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodDefaultRecord"
                }
              }
            },
            "description": "Successfully update the default input record for a given estimation method"
          }
        },
        "summary": "Update the default input record for a given estimation method",
        "tags": [
          "estimation_methods_default_records"
        ]
      },
      "delete": {
        "operationId": "delete_estimation_method_default_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete the default input record for a given estimation method",
        "tags": [
          "estimation_methods_default_records"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/default_records/{target_asset_id}": {
      "get": {
        "operationId": "list_estimation_method_default_record_target_asset_id",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodTargetAssetId"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEstimationMethodDefaultRecords"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              }
            },
            "description": "Successfully returns the list of default input records for a given estimation method  and target asset"
          }
        },
        "summary": "List the default input records for a given estimation method and target asset",
        "tags": [
          "estimation_methods_default_records"
        ]
      }
    },
    "/app/v1/estimation_methods/{entity_type}/{id}/default_records/{target_asset_id}/{input_name}": {
      "get": {
        "operationId": "get_estimation_method_default_record_target_asset_id",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodTargetAssetId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodDefaultRecord"
                }
              }
            },
            "description": "Successfully returns the default input record for a given estimation method and target asset"
          }
        },
        "summary": "Get the default input record for a given estimation method and target asset",
        "tags": [
          "estimation_methods_default_records"
        ]
      },
      "post": {
        "operationId": "create_estimation_method_default_record_target_asset_id",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodTargetAssetId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimationMethodDefaultRecordInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodDefaultRecord"
                }
              }
            },
            "description": "Successfully returns the default input record for a given estimation method and target asset"
          }
        },
        "summary": "Create the default input record for a given estimation method and target asset",
        "tags": [
          "estimation_methods_default_records"
        ]
      },
      "put": {
        "operationId": "update_estimation_method_default_record_target_asset_id",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodTargetAssetId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimationMethodDefaultRecordInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimationMethodDefaultRecord"
                }
              }
            },
            "description": "Successfully update the default input record for a given estimation method and target asset"
          }
        },
        "summary": "Update the default input record for a given estimation method and target asset",
        "tags": [
          "estimation_methods_default_records"
        ]
      },
      "delete": {
        "operationId": "delete_estimation_method_default_record_target_asset_id",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstimationMethodEntityType"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodTargetAssetId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodInputName"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete the default input record for a given estimation method and target asset",
        "tags": [
          "estimation_methods_default_records"
        ]
      }
    },
    "/app/v1/event_categories": {
      "get": {
        "operationId": "list_event_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventCategoryName"
          },
          {
            "$ref": "#/components/parameters/EventCategoryArchived"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/EventCategory"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List event categories",
        "tags": [
          "event_categories"
        ]
      },
      "post": {
        "operationId": "create_event_category",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventCategoryCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create an event category",
        "tags": [
          "event_categories"
        ]
      }
    },
    "/app/v1/event_categories/{id}": {
      "get": {
        "operationId": "get_event_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventCategoryId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get an event category",
        "tags": [
          "event_categories"
        ]
      },
      "put": {
        "operationId": "put_event_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventCategoryId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventCategoryUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update an event category",
        "tags": [
          "event_categories"
        ]
      },
      "delete": {
        "operationId": "delete_event_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventCategoryId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete an event category",
        "tags": [
          "event_categories"
        ]
      }
    },
    "/app/v1/event_schemas": {
      "post": {
        "operationId": "create_event_schema",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventSchemaCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSchemaWithForms"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create an event schema",
        "tags": [
          "event_schemas"
        ]
      }
    },
    "/app/v1/event_schemas/{id}": {
      "put": {
        "operationId": "update_event_schema",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventSchemaId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventSchemaCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSchemaWithForms"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update an event schema",
        "tags": [
          "event_schemas"
        ]
      },
      "delete": {
        "operationId": "delete_event_schema",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventSchemaId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete an event schema",
        "tags": [
          "event_schemas"
        ]
      },
      "get": {
        "operationId": "get_event_schema",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventSchemaId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventSchemaWithForms"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get an event schema",
        "tags": [
          "event_schemas"
        ]
      }
    },
    "/app/v1/event_schemas/search": {
      "post": {
        "operationId": "search_event_schemas",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/EventSchemaSort"
                  },
                  {
                    "$ref": "#/components/schemas/EventSchemaFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/EventSchema"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Search and list event schemas",
        "tags": [
          "event_schemas"
        ]
      }
    },
    "/app/v1/events": {
      "get": {
        "operationId": "list_events",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/components/parameters/EventName"
          },
          {
            "$ref": "#/components/parameters/EventDescription"
          },
          {
            "$ref": "#/components/parameters/EventStatus"
          },
          {
            "$ref": "#/components/parameters/EventClassification"
          },
          {
            "$ref": "#/components/parameters/EventStartWindow"
          },
          {
            "$ref": "#/components/parameters/EventEndWindow"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/EventWithDuration"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List events",
        "tags": [
          "events"
        ]
      },
      "post": {
        "operationId": "create_event",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Event"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create an event",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/search": {
      "post": {
        "operationId": "search_events",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventSchemaQuery"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/EventSort"
                  },
                  {
                    "$ref": "#/components/schemas/EventFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "oneOf": [
                              {
                                "$ref": "#/components/schemas/EventWithSchema"
                              },
                              {
                                "$ref": "#/components/schemas/EventWithDuration"
                              }
                            ]
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Search and list events",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/{id}": {
      "get": {
        "operationId": "get_event",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventWithAssociatedFacility"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get an event",
        "tags": [
          "events"
        ]
      },
      "put": {
        "operationId": "update_event",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Event"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update an event",
        "tags": [
          "events"
        ]
      },
      "delete": {
        "operationId": "delete_event",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete an event",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/{id}/equipment/{equipment_id}": {
      "put": {
        "deprecated": true,
        "operationId": "add_event_equipment",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/EquipmentId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add an event/equipment relationship",
        "tags": [
          "events"
        ]
      },
      "delete": {
        "deprecated": true,
        "operationId": "remove_event_equipment",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/EquipmentId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove an event/equipment relationship",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/{id}/measurement_series/{measurement_series_id}": {
      "put": {
        "operationId": "add_event_measurement_series",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add an event/measurement_series relationship",
        "tags": [
          "events"
        ]
      },
      "delete": {
        "operationId": "remove_event_measurement_series",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove an event/measurement_series relationship",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/{id}/facilities/{facility_id}": {
      "put": {
        "deprecated": true,
        "operationId": "add_event_facilities",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/FacilityId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add an event/facilities relationship",
        "tags": [
          "events"
        ]
      },
      "delete": {
        "deprecated": true,
        "operationId": "remove_event_facilities",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/FacilityId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove an event/facilities relationship",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/{id}/asset/{asset_id}": {
      "put": {
        "operationId": "add_event_asset",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/AssetId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add an event/asset relationship",
        "tags": [
          "events"
        ]
      },
      "delete": {
        "operationId": "remove_event_asset",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/AssetId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove an event/asset relationship",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/{id}/form_submissions/{form_submission_id}": {
      "put": {
        "operationId": "add_event_form_submissions",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionIdFull"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionVersionQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add an event/form_submissions relationship",
        "tags": [
          "events"
        ]
      },
      "delete": {
        "operationId": "remove_event_form_submissions",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionIdFull"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionVersionQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove an event/form_submissions relationship",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/{id}/alerts/": {
      "get": {
        "operationId": "list_event_alerts",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventAlert"
                  }
                }
              }
            }
          }
        },
        "summary": "List an event/alerts relationships",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/{id}/alerts/{alert_id}": {
      "put": {
        "operationId": "add_event_alerts",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/AlertIdPath"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add an event/alerts relationship",
        "tags": [
          "events"
        ]
      },
      "delete": {
        "operationId": "remove_event_alerts",
        "parameters": [
          {
            "$ref": "#/components/parameters/EventId"
          },
          {
            "$ref": "#/components/parameters/AlertIdPath"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove an event/alerts relationship",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/company_equipment_type_groups": {
      "get": {
        "operationId": "list_company_equipment_type_groups",
        "parameters": [
          {
            "$ref": "#/components/parameters/EquipmentTypeGroupNameQuery"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CompanyEquipmentTypeGroup"
                  },
                  "type": "array"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List company equipment type groups",
        "tags": [
          "company_equipment_type_groups"
        ]
      },
      "post": {
        "operationId": "create_company_equipment_type_group",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "group_name": {
                    "example": "subpartW",
                    "type": "string"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyEquipmentTypeGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create an association between a company and equipment type group",
        "tags": [
          "company_equipment_type_groups"
        ]
      }
    },
    "/app/v1/events/filters": {
      "get": {
        "operationId": "get_events_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedEventFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "events"
        ]
      },
      "post": {
        "operationId": "post_events_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/events/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_events_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "events"
        ]
      },
      "put": {
        "operationId": "put_events_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "events"
        ]
      }
    },
    "/app/v1/company_equipment_type_groups/{group_name}": {
      "delete": {
        "operationId": "delete_company_equipment_type_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/EquipmentTypeGroupName"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a company equipment type group",
        "tags": [
          "company_equipment_type_groups"
        ]
      },
      "get": {
        "operationId": "get_company_equipment_type_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/EquipmentTypeGroupName"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyEquipmentTypeGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get company equipment type group",
        "tags": [
          "company_equipment_type_groups"
        ]
      }
    },
    "/app/v1/custom_attribute_data_types": {
      "get": {
        "description": "Returns the list of data types that custom attributes support",
        "operationId": "list_custom_attribute_data_types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomAttributeDataTypeList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Custom Attribute Data Types",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/custom_attribute_definition/{entity_type}": {
      "get": {
        "operationId": "ListCustomAttributeDefinition",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomAttributeEntityType"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortByCustomAttributeDefinition"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          },
          {
            "$ref": "#/components/parameters/CustomAttributeDefinitionFieldName"
          },
          {
            "$ref": "#/components/parameters/CustomAttributeDefinitionEntitySubType"
          },
          {
            "$ref": "#/components/parameters/CustomAttributeDefinitionArchived"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedCustomAttributeDefinitionList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Custom Attribute Definitions",
        "tags": [
          "custom_attribute_definition"
        ]
      },
      "post": {
        "operationId": "createCustomAttributeDefinition",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomAttributeEntityType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomAttributeDefinitionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomAttributeDefinition"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create a Custom Attribute Definition",
        "tags": [
          "custom_attribute_definition"
        ]
      }
    },
    "/app/v1/custom_attribute_definition/{entity_type}/{field_name}": {
      "delete": {
        "operationId": "deleteCustomAttributeDefinition",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomAttributeEntityType"
          },
          {
            "$ref": "#/components/parameters/CustomAttributeFieldName"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a Custom Attribute Definition",
        "tags": [
          "custom_attribute_definition"
        ]
      },
      "put": {
        "operationId": "updateCustomAttributeDefinition",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomAttributeEntityType"
          },
          {
            "$ref": "#/components/parameters/CustomAttributeFieldName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomAttributeDefinitionUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomAttributeDefinition"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update a Custom Attribute Definition",
        "tags": [
          "custom_attribute_definition"
        ]
      }
    },
    "/app/v1/custom_attribute_entities": {
      "get": {
        "description": "Returns the list of entity types that support custom attributes",
        "operationId": "list_custom_attribute_entities",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomAttributeEntityTypeList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Custom Attribute Entity Types",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/dashboards": {
      "get": {
        "operationId": "list_dashboard",
        "parameters": [
          {
            "$ref": "#/components/parameters/DashboardName"
          },
          {
            "$ref": "#/components/parameters/DashboardDescription"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/Dashboard"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List dashboards",
        "tags": [
          "dashboards"
        ]
      },
      "post": {
        "operationId": "create_dashboard",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardCreateUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dashboard"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a dashboard",
        "tags": [
          "dashboards"
        ]
      }
    },
    "/app/v1/dashboards/{id}": {
      "delete": {
        "operationId": "delete_dashboard",
        "parameters": [
          {
            "$ref": "#/components/parameters/DashboardId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a dashboard",
        "tags": [
          "dashboards"
        ]
      },
      "get": {
        "operationId": "get_dashboard",
        "parameters": [
          {
            "$ref": "#/components/parameters/DashboardId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Dashboard"
                    },
                    {
                      "properties": {
                        "chart": {
                          "items": {
                            "$ref": "#/components/schemas/Chart"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a dashboard",
        "tags": [
          "dashboards"
        ]
      },
      "put": {
        "operationId": "put_dashboard",
        "parameters": [
          {
            "$ref": "#/components/parameters/DashboardId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardCreateUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dashboard"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a dashboard",
        "tags": [
          "dashboards"
        ]
      }
    },
    "/app/v1/device_types": {
      "get": {
        "operationId": "list_device_types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceTypeList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Device Type List",
        "tags": [
          "device_types"
        ]
      }
    },
    "/app/v1/devices": {
      "get": {
        "deprecated": true,
        "operationId": "list_devices",
        "parameters": [
          {
            "$ref": "#/components/parameters/DeviceStatusQuery"
          },
          {
            "$ref": "#/components/parameters/DeviceTypeIdQuery"
          },
          {
            "$ref": "#/components/parameters/FacilityIdQuery"
          },
          {
            "$ref": "#/components/parameters/DeviceNameQuery"
          },
          {
            "$ref": "#/components/parameters/FacilityName"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortByEquipment"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedDeviceList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List devices",
        "tags": [
          "devices"
        ]
      },
      "post": {
        "operationId": "post_device",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceWithFacility"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create a Device",
        "tags": [
          "devices"
        ]
      }
    },
    "/app/v1/devices/filters": {
      "get": {
        "operationId": "get_device_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedDeviceFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "devices"
        ]
      },
      "post": {
        "operationId": "post_device_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "devices"
        ]
      }
    },
    "/app/v1/devices/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_devices_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "devices"
        ]
      },
      "put": {
        "operationId": "put_device_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "devices"
        ]
      }
    },
    "/app/v1/devices/search": {
      "post": {
        "operationId": "search_device",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/DeviceSort"
                  },
                  {
                    "$ref": "#/components/schemas/DeviceFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedDeviceList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search Devices",
        "tags": [
          "devices"
        ]
      }
    },
    "/app/v1/devices/export": {
      "post": {
        "operationId": "export_devices",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DeviceSort"
                  },
                  {
                    "$ref": "#/components/schemas/DeviceFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Export devices",
        "tags": [
          "devices"
        ]
      }
    },
    "/app/v1/devices/{device_id}": {
      "delete": {
        "operationId": "delete_device",
        "parameters": [
          {
            "$ref": "#/components/parameters/DeviceId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a Device",
        "tags": [
          "devices"
        ]
      },
      "get": {
        "operationId": "get_device",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          },
          {
            "$ref": "#/components/parameters/DeviceId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceWithFacility"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get a Device by ID",
        "tags": [
          "devices"
        ]
      },
      "put": {
        "operationId": "put_device",
        "parameters": [
          {
            "$ref": "#/components/parameters/DeviceId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceWithFacility"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update a Device",
        "tags": [
          "devices"
        ]
      }
    },
    "/app/v1/devices/{device_id}/archive": {
      "put": {
        "operationId": "archive_device",
        "parameters": [
          {
            "$ref": "#/components/parameters/DeviceId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceWithFacility"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Archive a Device",
        "tags": [
          "devices"
        ]
      }
    },
    "/app/v1/equipment": {
      "post": {
        "operationId": "create_equipment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EquipmentInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EquipmentWithFacility"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create an Equipment",
        "tags": [
          "equipment"
        ]
      }
    },
    "/app/v1/equipment/filters": {
      "get": {
        "operationId": "get_equipment_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedEquipmentFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "equipment"
        ]
      },
      "post": {
        "operationId": "post_equipment_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EquipmentFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EquipmentFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "equipment"
        ]
      }
    },
    "/app/v1/equipment/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_equipment_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "equipment"
        ]
      },
      "put": {
        "operationId": "put_equipment_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EquipmentFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EquipmentFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "equipment"
        ]
      }
    },
    "/app/v1/equipment/search": {
      "post": {
        "operationId": "search_equipment",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/EquipmentSort"
                  },
                  {
                    "$ref": "#/components/schemas/EquipmentFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedEquipmentList"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search and list equipment",
        "tags": [
          "equipment"
        ]
      }
    },
    "/app/v1/equipment/export": {
      "post": {
        "operationId": "export_equipment",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/EquipmentSort"
                  },
                  {
                    "$ref": "#/components/schemas/EquipmentFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Export equipment",
        "tags": [
          "equipment"
        ]
      }
    },
    "/app/v1/equipment/{equipment_id}": {
      "delete": {
        "operationId": "delete_equipment",
        "parameters": [
          {
            "$ref": "#/components/parameters/EquipmentId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Equipment",
        "tags": [
          "equipment"
        ]
      },
      "get": {
        "operationId": "get_equipment",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          },
          {
            "$ref": "#/components/parameters/EquipmentId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EquipmentWithFacility"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get an Equipment by ID",
        "tags": [
          "equipment"
        ]
      },
      "put": {
        "operationId": "update_equipment",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          },
          {
            "$ref": "#/components/parameters/EquipmentId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EquipmentUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Equipment"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Equipment",
        "tags": [
          "equipment"
        ]
      }
    },
    "/app/v1/equipment_types": {
      "get": {
        "operationId": "list_equipment_types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EquipmentTypeList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Equipment Type List",
        "tags": [
          "equipment_types"
        ]
      }
    },
    "/app/v1/equipment_types/{type_id}": {
      "get": {
        "operationId": "get_equipment_type",
        "parameters": [
          {
            "$ref": "#/components/parameters/EquipmentTypeId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EquipmentType"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Equipment Type",
        "tags": [
          "equipment_types"
        ]
      }
    },
    "/app/v1/facilities": {
      "post": {
        "operationId": "createFacility",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FacilityInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Facility"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create a Facility",
        "tags": [
          "facilities"
        ]
      }
    },
    "/app/v1/facilities/filters": {
      "get": {
        "operationId": "get_facilities_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFacilityFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "facilities"
        ]
      },
      "post": {
        "operationId": "post_facility_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FacilityFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacilityFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "facilities"
        ]
      }
    },
    "/app/v1/facilities/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_facilities_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "facilities"
        ]
      },
      "put": {
        "operationId": "put_facilities_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FacilityFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacilityFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "facilities"
        ]
      }
    },
    "/app/v1/assets/search": {
      "post": {
        "operationId": "searchAssets",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/AssetSort"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "filter": {
                        "$ref": "#/components/schemas/AssetFilterFields"
                      }
                    }
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedAssetList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search Assets",
        "tags": [
          "assets"
        ]
      }
    },
    "/app/v1/facilities/search": {
      "post": {
        "operationId": "searchFacility",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FacilitySort"
                  },
                  {
                    "$ref": "#/components/schemas/FacilityFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFacilityList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search Facilities",
        "tags": [
          "facilities"
        ]
      }
    },
    "/app/v1/facilities/export": {
      "post": {
        "operationId": "exportFacilities",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FacilitySort"
                  },
                  {
                    "$ref": "#/components/schemas/FacilityFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "A successful with the link to download report"
          }
        },
        "summary": "Export facilities",
        "tags": [
          "facilities"
        ]
      }
    },
    "/app/v1/facilities/{facility_id}": {
      "delete": {
        "operationId": "delete_facility",
        "parameters": [
          {
            "$ref": "#/components/parameters/FacilityId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a Facility and its Equipment",
        "tags": [
          "facilities"
        ]
      },
      "get": {
        "operationId": "get_facility",
        "parameters": [
          {
            "$ref": "#/components/parameters/FacilityId"
          },
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacilityWithEquipment"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Facility by Id",
        "tags": [
          "facilities"
        ]
      },
      "put": {
        "operationId": "update_facility",
        "parameters": [
          {
            "$ref": "#/components/parameters/FacilityId"
          },
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FacilityUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Facility"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update a Facility",
        "tags": [
          "facilities"
        ]
      }
    },
    "/app/v1/flows": {
      "post": {
        "operationId": "create_flow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowWithConnections"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a flow",
        "tags": [
          "flows"
        ]
      }
    },
    "/app/v1/flows/search": {
      "post": {
        "operationId": "search_flows",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FlowSort"
                  },
                  {
                    "$ref": "#/components/schemas/FlowFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFlowsList"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search and list Flows",
        "tags": [
          "flows"
        ]
      }
    },
    "/app/v2/flows/search": {
      "post": {
        "operationId": "search_flows_v2",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FlowSort"
                  },
                  {
                    "$ref": "#/components/schemas/FlowFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFlowsListV2"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search and list Flows",
        "tags": [
          "flows"
        ]
      }
    },
    "/app/v1/flows/export": {
      "post": {
        "operationId": "export_flows",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FlowSort"
                  },
                  {
                    "$ref": "#/components/schemas/FlowFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Export Flows",
        "tags": [
          "flows"
        ]
      }
    },
    "/app/v1/flows/{id}": {
      "get": {
        "operationId": "get_flow",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          },
          {
            "$ref": "#/components/parameters/FlowId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowWithConnections"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a flow",
        "tags": [
          "flows"
        ]
      },
      "put": {
        "operationId": "update_flow",
        "parameters": [
          {
            "$ref": "#/components/parameters/Period"
          },
          {
            "$ref": "#/components/parameters/FlowId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowUpdateInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowWithConnections"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a flow",
        "tags": [
          "flows"
        ]
      },
      "delete": {
        "operationId": "delete_flow",
        "parameters": [
          {
            "$ref": "#/components/parameters/FlowId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a flow",
        "tags": [
          "flows"
        ]
      }
    },
    "/app/v1/flows/filters": {
      "get": {
        "operationId": "get_flow_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFlowFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "flows"
        ]
      },
      "post": {
        "operationId": "post_flow_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "flows"
        ]
      }
    },
    "/app/v1/flows/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_flow_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "flows"
        ]
      },
      "put": {
        "operationId": "put_flow_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "flows"
        ]
      }
    },
    "/app/v1/flow_types": {
      "get": {
        "description": "Returns the list of flow types",
        "operationId": "list_flow_types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Flow Types",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/product_types": {
      "get": {
        "description": "Returns the list of product types",
        "operationId": "list_product_types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Product Types",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/product_categories": {
      "get": {
        "description": "Returns the list of product categories",
        "operationId": "list_product_categories",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Product Categories",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/event_statuses": {
      "get": {
        "description": "Returns the list of event statuses",
        "operationId": "list_event_statuses",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Event Statuses",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/facility_types": {
      "get": {
        "description": "Returns the list of facility types",
        "operationId": "list_facility_types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Facility Types",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/facility_statuses": {
      "get": {
        "description": "Returns the list of facility statuses",
        "operationId": "list_facility_statuses",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Facility Statuses",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/form_categories": {
      "get": {
        "operationId": "list_form_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormCategoryName"
          },
          {
            "$ref": "#/components/parameters/FormCategoryArchived"
          },
          {
            "$ref": "#/components/parameters/RelatedEntityIdQuery"
          },
          {
            "$ref": "#/components/parameters/MeasurementTypeQuery"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/FormCategory"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List form categories",
        "tags": [
          "form_categories"
        ]
      },
      "post": {
        "operationId": "create_form_category",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormCategoryInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a form category",
        "tags": [
          "form_categories"
        ]
      }
    },
    "/app/v1/form_categories/{id}": {
      "delete": {
        "operationId": "delete_form_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormCategoryId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a form category",
        "tags": [
          "form_categories"
        ]
      },
      "get": {
        "operationId": "get_form_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormCategoryId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a form category",
        "tags": [
          "form_categories"
        ]
      },
      "put": {
        "operationId": "put_form_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormCategoryId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormCategoryUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a form category",
        "tags": [
          "form_categories"
        ]
      }
    },
    "/app/v1/form_schemas": {
      "get": {
        "operationId": "list_form_schema",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSchemaName"
          },
          {
            "$ref": "#/components/parameters/FormSchemaStatus"
          },
          {
            "$ref": "#/components/parameters/FormCategoryIdQuery"
          },
          {
            "$ref": "#/components/parameters/FormCategoryNameQuery"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFormSchemaList"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List form schema",
        "tags": [
          "form_schemas"
        ]
      },
      "post": {
        "operationId": "create_form_schema",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormSchemaInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSchema"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a form schema",
        "tags": [
          "form_schemas"
        ]
      }
    },
    "/app/v1/form_schemas/{id}": {
      "get": {
        "operationId": "get_form_schema",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSchemaId"
          },
          {
            "$ref": "#/components/parameters/FormSchemaVersionQuery"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSchemaWithCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a form schema",
        "tags": [
          "form_schemas"
        ]
      },
      "put": {
        "operationId": "update_form_schema",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSchemaId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormSchemaInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSchemaWithCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a form schema",
        "tags": [
          "form_schemas"
        ]
      }
    },
    "/app/v1/form_schemas/{id}/versions": {
      "get": {
        "operationId": "list_form_schema_versions",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSchemaId"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFormSchemaList"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List form schema versions",
        "tags": [
          "form_schemas"
        ]
      }
    },
    "/app/v1/form_schemas/search": {
      "post": {
        "operationId": "search_form_schemas",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FormSchemaSort"
                  },
                  {
                    "$ref": "#/components/schemas/FormSchemaFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFormSchemaList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search form schemas",
        "tags": [
          "form_schemas"
        ]
      }
    },
    "/app/v1/form_submissions": {
      "post": {
        "operationId": "create_form_submission",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormSubmissionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSubmissionWithAnswers"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a form submission",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/form_submissions/filters": {
      "get": {
        "operationId": "get_form_submissions_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFormSubmissionFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "form_submissions"
        ]
      },
      "post": {
        "operationId": "post_form_submissions_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormSubmissionFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSubmissionFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/form_submissions/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_form_submissions_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "form_submissions"
        ]
      },
      "put": {
        "operationId": "put_form_submissions_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormSubmissionFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSubmissionFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/form_submissions/search": {
      "post": {
        "operationId": "search_form_submissions",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSubmissionAnswersQuery"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FormSubmissionSort"
                  },
                  {
                    "$ref": "#/components/schemas/FormSubmissionFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFormSubmissionList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search form submissions",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/form_submissions/search/form_schema/{form_schema_id}/{version}": {
      "post": {
        "deprecated": true,
        "operationId": "search_form_submissions_answers",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSchemaIdParam"
          },
          {
            "$ref": "#/components/parameters/FormSchemaVersionParam"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FormSubmissionAnswerSort"
                  },
                  {
                    "$ref": "#/components/schemas/FormSubmissionAnswerFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFormSubmissionAnswerList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search form submissions by answers",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/form_submissions/search/form_schema/{form_schema_id}": {
      "post": {
        "operationId": "search_form_submissions_answers",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSchemaIdParam"
          },
          {
            "$ref": "#/components/parameters/FormSchemaVersionQuery"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FormSubmissionAnswerSort"
                  },
                  {
                    "$ref": "#/components/schemas/FormSubmissionAnswerFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedFormSubmissionAnswerList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search form submissions by answers",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/form_submissions/export": {
      "post": {
        "operationId": "export_form_submissions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormSubmissionFilter"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Export Form Submissions for a specific Form Schema/ Template",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/form_submissions/export_metadata/{form_schema_id}": {
      "get": {
        "operationId": "export_form_metadata",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSchemaIdParam"
          },
          {
            "$ref": "#/components/parameters/FormSchemaVersionQuery"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "form_name": {
                      "type": "string"
                    },
                    "properties": {
                      "$ref": "#/components/schemas/JsonSchema"
                    },
                    "required": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "conditional": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "calculated": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "column_order": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "column_name_mappings": {
                      "type": "object",
                      "properties": {
                        "additionalProperties": {
                          "type": "object",
                          "properties": {
                            "sectionId": {
                              "type": "string"
                            },
                            "questionId": {
                              "type": "string"
                            },
                            "value": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Form metadata for imports and exports",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/form_submissions/{id}": {
      "get": {
        "operationId": "get_form_submission",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSubmissionId"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionVersionQuery"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSubmissionWithAnswers"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a form submission",
        "tags": [
          "form_submissions"
        ]
      },
      "put": {
        "operationId": "update_form_submission",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSubmissionId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormSubmissionUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSubmissionWithAnswers"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a form submission",
        "tags": [
          "form_submissions"
        ]
      },
      "post": {
        "operationId": "edit_form_submission",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSubmissionId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormSubmissionEditInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSubmissionWithAnswers"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Edit a form submission",
        "tags": [
          "form_submissions"
        ]
      },
      "delete": {
        "operationId": "delete_form_submission",
        "parameters": [
          {
            "$ref": "#/components/parameters/FormSubmissionId"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionVersionQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete a Form Submission",
        "tags": [
          "form_submissions"
        ]
      }
    },
    "/app/v1/group_categories": {
      "post": {
        "operationId": "create_group_category",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupCategoryCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a Group Category",
        "tags": [
          "group_categories"
        ]
      }
    },
    "/app/v1/group_categories/{id}": {
      "get": {
        "operationId": "get_group_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/GroupCategoryId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a Group Category",
        "tags": [
          "group_categories"
        ]
      },
      "put": {
        "operationId": "put_group_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/GroupCategoryId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupCategoryUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a Group Category",
        "tags": [
          "group_categories"
        ]
      },
      "delete": {
        "operationId": "delete_group_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/GroupCategoryId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a Group Category",
        "tags": [
          "group_categories"
        ]
      }
    },
    "/app/v1/group_categories/search": {
      "post": {
        "operationId": "search_group_categories",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/GroupCategorySort"
                  },
                  {
                    "$ref": "#/components/schemas/GroupCategoryFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedGroupCategoryList"
                }
              }
            },
            "description": "Successfully operation"
          }
        },
        "summary": "Search Group Categories",
        "tags": [
          "group_categories"
        ]
      }
    },
    "/app/v1/industry_segments": {
      "get": {
        "description": "Returns the list of industry segments based on the US emission spreadsheet",
        "operationId": "list_industry_segment",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CodeNamePair"
                  }
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Industry Segment",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/jobs/search": {
      "post": {
        "operationId": "search_jobs",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/JobSort"
                  },
                  {
                    "$ref": "#/components/schemas/JobFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedJobs"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Search jobs",
        "tags": [
          "job"
        ]
      }
    },
    "/app/v2/jobs/{job_id}": {
      "get": {
        "operationId": "get_job_v2",
        "parameters": [
          {
            "$ref": "#/components/parameters/JobId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobV2"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a job",
        "tags": [
          "job"
        ]
      }
    },
    "/app/v1/jobs/{job_id}/items": {
      "get": {
        "operationId": "get_job_items",
        "parameters": [
          {
            "$ref": "#/components/parameters/JobId"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedJobItems"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List job items",
        "tags": [
          "job"
        ]
      }
    },
    "/app/v1/ledger": {
      "post": {
        "operationId": "create_ledger_entry",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LedgerEntryCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerEntry"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Add a ledger entry",
        "tags": [
          "ledger"
        ]
      }
    },
    "/app/v1/ledger/search": {
      "post": {
        "operationId": "search_ledger_entries",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/LedgerEntrySort"
                  },
                  {
                    "$ref": "#/components/schemas/LedgerEntryFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/LedgerEntry"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Search and list ledger entries",
        "tags": [
          "ledger"
        ]
      }
    },
    "/app/v1/ledger/{id}": {
      "get": {
        "operationId": "get_ledger_entry",
        "parameters": [
          {
            "$ref": "#/components/parameters/LedgerEntryId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerEntry"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a ledger entry",
        "tags": [
          "ledger"
        ]
      },
      "put": {
        "operationId": "update_ledger_entry",
        "parameters": [
          {
            "$ref": "#/components/parameters/LedgerEntryId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LedgerEntryUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerEntry"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a ledger entry",
        "tags": [
          "ledger"
        ]
      },
      "delete": {
        "operationId": "delete_ledger_entry",
        "parameters": [
          {
            "$ref": "#/components/parameters/LedgerEntryId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a ledger entry",
        "tags": [
          "ledger"
        ]
      }
    },
    "/public/v1/ledger/{company_id}/search": {
      "post": {
        "operationId": "public_search_ledger_entries",
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/LedgerEntryPublicSort"
                  },
                  {
                    "$ref": "#/components/schemas/LedgerEntryPublicFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/LedgerEntryPublic"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Public search and list ledger entries",
        "tags": [
          "ledger"
        ]
      }
    },
    "/app/v1/project_groups": {
      "post": {
        "operationId": "create_project_group",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectGroupCreateUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Add a project group",
        "tags": [
          "project_group"
        ]
      }
    },
    "/app/v1/project_groups/search": {
      "post": {
        "operationId": "search_project_groups",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/ProjectGroupSort"
                  },
                  {
                    "$ref": "#/components/schemas/ProjectGroupFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/ProjectGroup"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Search and list project groups",
        "tags": [
          "project_group"
        ]
      }
    },
    "/app/v1/project_groups/{project_group_id}": {
      "get": {
        "operationId": "get_project_group_entry",
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectGroupId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ProjectGroup"
                    },
                    {
                      "$ref": "#/components/schemas/ProjectGroupSummary"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a project_groups entry",
        "tags": [
          "project_group"
        ]
      },
      "put": {
        "operationId": "update_project_groups_entry",
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectGroupId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectGroupCreateUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a project group entry",
        "tags": [
          "project_group"
        ]
      },
      "delete": {
        "operationId": "delete_project_groups_entry",
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a project group entry",
        "tags": [
          "project_group"
        ]
      }
    },
    "/public/v1/project_groups/{company_id}/search": {
      "post": {
        "operationId": "public_search_project_groups",
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/ProjectGroupPublicSort"
                  },
                  {
                    "$ref": "#/components/schemas/ProjectGroupPublicFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/ProjectGroupPublic"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Public search and list ledger entries",
        "tags": [
          "project_group"
        ]
      }
    },
    "/public/v1/project_groups/{company_id}/{project_group_id}": {
      "get": {
        "operationId": "public_get_project",
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          },
          {
            "$ref": "#/components/parameters/ProjectGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ProjectGroupPublic"
                    },
                    {
                      "$ref": "#/components/schemas/ProjectGroupSummary"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Public search and list ledger entries",
        "tags": [
          "project_group"
        ]
      }
    },
    "/public/v1/project_groups/{company_id}/summary": {
      "get": {
        "operationId": "public_get_all_project_group_summary",
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "total_active_credits": {
                      "type": "number"
                    },
                    "total_retired_credits": {
                      "type": "number"
                    },
                    "project_count": {
                      "type": "number"
                    },
                    "active_projects": {
                      "type": "number"
                    }
                  },
                  "type": "object"
                }
              }
            }
          }
        },
        "summary": "Get the summary across all projects",
        "tags": [
          "project_group"
        ]
      }
    },
    "/app/v1/credit_owners": {
      "post": {
        "operationId": "create_credit_owner",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditOwnerCreateUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditOwner"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Add a credit owner",
        "tags": [
          "credit_owner"
        ]
      }
    },
    "/app/v1/credit_owners/search": {
      "post": {
        "operationId": "search_credit_owners",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/CreditOwnerSort"
                  },
                  {
                    "$ref": "#/components/schemas/CreditOwnerFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/CreditOwner"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "Search and list credit owners",
        "tags": [
          "credit_owner"
        ]
      }
    },
    "/app/v1/credit_owners/{credit_owner_id}": {
      "get": {
        "operationId": "get_credit_owner",
        "parameters": [
          {
            "$ref": "#/components/parameters/CreditOwnerId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditOwner"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a credit_owners entry",
        "tags": [
          "credit_owner"
        ]
      },
      "put": {
        "operationId": "update_credit_owners",
        "parameters": [
          {
            "$ref": "#/components/parameters/CreditOwnerId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditOwnerCreateUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditOwner"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a credit owner",
        "tags": [
          "credit_owner"
        ]
      },
      "delete": {
        "operationId": "delete_credit_owner",
        "parameters": [
          {
            "$ref": "#/components/parameters/CreditOwnerId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a credit owner",
        "tags": [
          "credit_owner"
        ]
      }
    },
    "/app/v1/measurement_series": {
      "get": {
        "operationId": "list_measurement_series",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortByMeasurementSeries"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesIds"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesDescription"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesDeviceName"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesDeviceId"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesSubjectId"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesSubjectType"
          },
          {
            "$ref": "#/components/parameters/EventIdQuery"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedMeasurementSeries"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List a Measurement series",
        "tags": [
          "measurement_series"
        ]
      },
      "post": {
        "operationId": "create_measurement_series",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MeasurementSeriesCreateInput"
                  },
                  {
                    "$ref": "#/components/schemas/MeasurementSeriesSubjectInput"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeasurementSeries"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Measurement series",
        "tags": [
          "measurement_series"
        ]
      }
    },
    "/app/v1/measurement_series/{measurement_series_id}": {
      "get": {
        "operationId": "get_measurement_series",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementSeriesId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/MeasurementSeries"
                    },
                    {
                      "properties": {
                        "device": {
                          "$ref": "#/components/schemas/MeasurementSeriesDevice"
                        },
                        "measurement_type_name": {
                          "example": "Wind Variation",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "$ref": "#/components/schemas/MeasurementSeriesSubjectInput"
                    }
                  ]
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get a Measurement series",
        "tags": [
          "measurement_series"
        ]
      },
      "put": {
        "operationId": "update_measurement_series",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementSeriesId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "properties": {
                      "description": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  {
                    "$ref": "#/components/schemas/MeasurementSeriesSubjectInput"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/MeasurementSeries"
                    },
                    {
                      "properties": {
                        "device": {
                          "$ref": "#/components/schemas/Device"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update a Measurement series",
        "tags": [
          "measurement_series"
        ]
      },
      "delete": {
        "operationId": "delete_measurement_series",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementSeriesId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a Measurement series",
        "tags": [
          "measurement_series"
        ]
      }
    },
    "/app/v1/measurement_types": {
      "get": {
        "operationId": "list_measurement_types",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementTypeSubjectId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeasurementTypeList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Measurement Type List",
        "tags": [
          "measurement_types"
        ]
      }
    },
    "/app/v2/measurement_types": {
      "get": {
        "operationId": "list_measurement_types_v2",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementTypeSubjectId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/MeasurementTypeV2"
                      },
                      {
                        "properties": {
                          "default_unit_info": {
                            "$ref": "#/components/schemas/MeasurementTypeUnitConfig"
                          }
                        },
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Measurement Type List",
        "tags": [
          "measurement_types"
        ]
      }
    },
    "/app/v1/measurement_quantities": {
      "get": {
        "operationId": "list_measurement_quantities",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeasurementQuantityList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Measurement Quantity List",
        "tags": [
          "measurement_types"
        ]
      }
    },
    "/app/v1/measurement_units": {
      "get": {
        "operationId": "list_all_measurement_units",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MeasurementTypeUnitConfig"
                  },
                  "type": "array"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Measurement Unit List",
        "tags": [
          "measurement_types"
        ]
      }
    },
    "/app/v1/measurement_units/{quantity}": {
      "get": {
        "operationId": "list_measurement_units",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementQuantityId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MeasurementTypeUnitConfig"
                  },
                  "type": "array"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get Measurement Unit List for a quantity",
        "tags": [
          "measurement_types"
        ]
      }
    },
    "/app/v1/measurements": {
      "get": {
        "operationId": "get_aggregated_measurements",
        "parameters": [
          {
            "$ref": "#/components/parameters/DeviceIdQuery"
          },
          {
            "$ref": "#/components/parameters/GroupBy"
          },
          {
            "$ref": "#/components/parameters/Interval"
          },
          {
            "$ref": "#/components/parameters/AggregateFunction"
          },
          {
            "$ref": "#/components/parameters/StartDate"
          },
          {
            "$ref": "#/components/parameters/EndDate"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedMeasurementList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get aggregated list of measurements",
        "tags": [
          "measurements"
        ]
      }
    },
    "/app/v1/measurements/plot/{measurement_type}": {
      "get": {
        "operationId": "plot_measurements",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementType"
          },
          {
            "$ref": "#/components/parameters/DeviceIdQueryOptional"
          },
          {
            "$ref": "#/components/parameters/MeasurementTypeSubjectId"
          },
          {
            "$ref": "#/components/parameters/MeasurementTypeSubjectType"
          },
          {
            "$ref": "#/components/parameters/IncludeForms"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionStatuses"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesIds"
          },
          {
            "$ref": "#/components/parameters/StartDate"
          },
          {
            "$ref": "#/components/parameters/EndDate"
          },
          {
            "$ref": "#/components/parameters/Interval"
          },
          {
            "$ref": "#/components/parameters/AggregateFunction"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeasurementPlot"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get measurements for a measurement type",
        "tags": [
          "measurements"
        ]
      }
    },
    "/app/v1/measurements/{measurement_series_id}": {
      "get": {
        "operationId": "get_measurements",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementSeriesId"
          },
          {
            "$ref": "#/components/parameters/GroupBy"
          },
          {
            "$ref": "#/components/parameters/Interval"
          },
          {
            "$ref": "#/components/parameters/AggregateFunction"
          },
          {
            "$ref": "#/components/parameters/StartDate"
          },
          {
            "$ref": "#/components/parameters/EndDate"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesSubjectId"
          },
          {
            "$ref": "#/components/parameters/MeasurementSeriesSubjectType"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedMeasurementList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Get list of measurements",
        "tags": [
          "measurements"
        ]
      },
      "put": {
        "operationId": "add_measurement",
        "parameters": [
          {
            "$ref": "#/components/parameters/MeasurementSeriesId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Measurement"
                  },
                  {
                    "$ref": "#/components/schemas/MeasurementSeriesSubjectInput"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "recordsWritten": {
                      "example": 1,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "success": {
                      "example": true,
                      "type": "boolean"
                    }
                  }
                }
              }
            },
            "description": "successful operation"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "recordsRejected": {
                      "items": {
                        "$ref": "#/components/schemas/RejectedRecord"
                      },
                      "type": "array"
                    },
                    "recordsRejectedCount": {
                      "minimum": 1,
                      "type": "integer"
                    },
                    "success": {
                      "example": false,
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success",
                    "error"
                  ]
                }
              }
            },
            "description": "unsuccessful operation"
          }
        },
        "summary": "Upsert a measurement",
        "tags": [
          "measurements"
        ]
      }
    },
    "/app/v1/networks/{id}/{year_month}": {
      "get": {
        "operationId": "get_network_monthly",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedNetworkList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Gets a list of network proration inputs and results",
        "tags": [
          "networks"
        ]
      },
      "put": {
        "operationId": "upsert_network_monthly",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/NetworkInput"
                  },
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FlowSort"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedNetworkList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Upsert configuration for a network monthly proration input",
        "tags": [
          "networks"
        ]
      },
      "delete": {
        "operationId": "delete_network_monthly",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedNetworkList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Delete a month configuration. Returns the default configuration",
        "tags": [
          "networks"
        ]
      }
    },
    "/app/v1/networks/{id}/{year_month}/run": {
      "post": {
        "operationId": "run_network_monthly",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          },
          {
            "$ref": "#/components/parameters/YearMonth"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FlowSort"
                  },
                  {
                    "$ref": "#/components/schemas/NetworkRunPromote"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedNetworkList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Triggers the calculation and returns the table along with the results",
        "tags": [
          "networks"
        ]
      }
    },
    "/app/v1/networks/{id}/migrate": {
      "post": {
        "operationId": "migrate_network",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetGroupId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "reporting_group_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetGroup"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Migrates the network and it's configurations to estimation methods",
        "tags": [
          "networks"
        ]
      }
    },
    "/app/v1/workflow_template_statuses": {
      "get": {
        "description": "Returns the list of workflow template statuses",
        "operationId": "list_workflow_template_statuses",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List workflow template statuses",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/workflow_statuses": {
      "get": {
        "description": "Returns the list of workflow statuses",
        "operationId": "list_workflow_statuses",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List workflow statuses",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v1/workflow_task_statuses": {
      "get": {
        "description": "Returns the list of workflow task statuses",
        "operationId": "list_workflow_task_statuses",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnumIdNamePairList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List workflow task statuses",
        "tags": [
          "type_metadata"
        ]
      }
    },
    "/app/v2/reports/search": {
      "post": {
        "operationId": "search_reports",
        "deprecated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/ReportSort"
                  },
                  {
                    "$ref": "#/components/schemas/ReportFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedReportList"
                }
              }
            },
            "description": "List of generated reports"
          }
        },
        "summary": "Search and list generated reports",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v2/reports/{report_id}": {
      "get": {
        "operationId": "get_report_v2",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportResponse"
                }
              }
            },
            "description": "Report object plus link"
          }
        },
        "summary": "Get report with download URL",
        "tags": [
          "reports"
        ]
      },
      "delete": {
        "operationId": "delete_report",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete report",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v2/reports": {
      "post": {
        "operationId": "trigger_report_v2",
        "deprecated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriggerReportRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportResponse"
                }
              }
            },
            "description": "Report"
          }
        },
        "summary": "Trigger report generation",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v3/reports": {
      "post": {
        "operationId": "trigger_report_v3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriggerReportRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportAndLatestVersionResponse"
                }
              }
            },
            "description": "Report"
          }
        },
        "summary": "Trigger report generation",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v3/reports/search": {
      "post": {
        "operationId": "search_reports_v3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/ReportSort"
                  },
                  {
                    "$ref": "#/components/schemas/ReportFilterV2"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedReportsLatestVersionList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search reports with latest version",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v3/reports/inputs": {
      "get": {
        "operationId": "get_existing_report_inputs",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedReportNameQuery"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetExistingReportInputsResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get existing report inputs for a templated report",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v3/reports/{report_id}": {
      "get": {
        "operationId": "get_report_with_latest_version_v3",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportAndLatestVersionResponse"
                }
              }
            },
            "description": "Report with latest version"
          }
        },
        "summary": "Get Report with latest version",
        "tags": [
          "reports"
        ]
      },
      "put": {
        "operationId": "update_report",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportAndLatestVersionResponse"
                }
              }
            },
            "description": "Report with Templated Report"
          }
        },
        "summary": "Update report status",
        "tags": [
          "reports"
        ]
      },
      "delete": {
        "operationId": "delete_report",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete report",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v3/reports/{report_id}/versions": {
      "post": {
        "operationId": "trigger_report_next_version_v3",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportAndLatestVersionResponse"
                }
              }
            },
            "description": "Report"
          }
        },
        "summary": "Trigger next version report generation",
        "tags": [
          "reports"
        ]
      },
      "get": {
        "operationId": "get_report_versions_v3",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportAndVersionsResponse"
                }
              }
            },
            "description": "Report with list of versions"
          }
        },
        "summary": "Get report with list of versions",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v3/reports/{report_id}/versions/{version}": {
      "get": {
        "operationId": "get_report_version_v3",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          },
          {
            "$ref": "#/components/parameters/ReportVersion"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportAndVersionResponse"
                }
              }
            },
            "description": "Report with version"
          }
        },
        "summary": "Get report version",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v3/reports/{report_id}/versions/{version}/embedded/sheets": {
      "get": {
        "operationId": "get_embedded_report_sheets",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          },
          {
            "$ref": "#/components/parameters/ReportVersion"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedEmbeddedReportSheetList"
                }
              }
            },
            "description": "List of embedded report sheets"
          }
        },
        "summary": "Get and list embedded report sheets",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v3/reports/{report_id}/embedded/search": {
      "post": {
        "operationId": "search_embedded_report_rows",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "filter": {
                        "allOf": [
                          {
                            "$ref": "#/components/schemas/SearchEmbeddedReportRowsRequestFilter"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/EmbeddedReportSort"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedEmbeddedReportRowList"
                }
              }
            },
            "description": "List of embedded report rows"
          }
        },
        "summary": "Search and list embedded report rows",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v1/templated_reports/search": {
      "post": {
        "operationId": "search_templated_report",
        "parameters": [
          {
            "$ref": "#/components/parameters/TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedReportSort"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedReportFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedTemplatedReportList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search templated reports [System Admin]",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v1/templated_reports/search_company": {
      "post": {
        "operationId": "search_company_templated_report",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedReportSort"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "filter": {
                        "allOf": [
                          {
                            "$ref": "#/components/schemas/TemplatedReportFilterFields"
                          },
                          {
                            "$ref": "#/components/schemas/TemplatedReportCategoryFilterFieldsWithPrefix"
                          }
                        ]
                      }
                    }
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedTemplatedReportWithCategoryList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search a company's templated reports",
        "description": "This is scoped to what is enabled to the company and automatically filters only active reports",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v1/templated_reports/{templated_report_name}": {
      "get": {
        "operationId": "get_templated_report",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-TemplatedReportName"
          },
          {
            "$ref": "#/components/parameters/TenantId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedReportWithCategoryResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get templated report",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v1/templated_reports/{templated_report_name}/company/{company_id}": {
      "put": {
        "operationId": "add_templated_report_to_company",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-TemplatedReportName"
          },
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddTemplatedReportCompanyRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Make templated report available to a company [System Admin]",
        "tags": [
          "reports"
        ]
      },
      "delete": {
        "operationId": "remove_templated_report_from_company",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-TemplatedReportName"
          },
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove a templated report from a company [System Admin]",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v2/templated_report_categories": {
      "post": {
        "operationId": "create_templated_report_category",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTemplatedReportCategoryRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedReportCategoryResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Must be Company Admin - Create templated report category",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v2/templated_report_categories/{templated_report_category_id}": {
      "get": {
        "operationId": "get_templated_report_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-TemplatedReportCategoryId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedReportCategoryResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get templated report category",
        "tags": [
          "reports"
        ]
      },
      "put": {
        "operationId": "update_templated_report_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-TemplatedReportCategoryId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTemplatedReportCategoryRequestBody"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedReportCategoryResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Must be Company Admin - Update templated report category",
        "tags": [
          "reports"
        ]
      },
      "delete": {
        "operationId": "delete_templated_report_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/parameters-TemplatedReportCategoryId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Must be Company Admin - Delete templated report category",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v2/templated_report_categories/search": {
      "post": {
        "operationId": "search_company_templated_report_categories",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedReportCategorySort"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedReportCategoryFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedTemplatedReportCategoryList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search templated report categories",
        "tags": [
          "reports"
        ]
      }
    },
    "/app/v1/libraries": {
      "get": {
        "operationId": "get_libraries",
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Get all calculation libraries",
        "description": "Refer to [Calculation Service](https://analytics-tools-development.corp.validere.xyz/emission_calculator/docs/) for schema",
        "tags": [
          "emissions_calculator"
        ]
      }
    },
    "/app/v1/libraries/{library_id}": {
      "get": {
        "operationId": "get_library",
        "parameters": [
          {
            "$ref": "#/components/parameters/LibraryId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Get library",
        "description": "Refer to [Calculation Service](https://analytics-tools-development.corp.validere.xyz/emission_calculator/docs/) for schema",
        "tags": [
          "emissions_calculator"
        ]
      }
    },
    "/app/v1/calculators": {
      "get": {
        "deprecated": true,
        "operationId": "get_calculators",
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Get all calculators",
        "description": "Refer to [Calculation Service](https://analytics-tools-development.corp.validere.xyz/emission_calculator/docs/) for schema",
        "tags": [
          "emissions_calculator"
        ]
      }
    },
    "/app/v2/calculators": {
      "get": {
        "operationId": "get_calculators_v2",
        "parameters": [
          {
            "$ref": "#/components/parameters/CalculatorVersionInformationFieldQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Get all calculators",
        "description": "Refer to [Calculation Service](https://analytics-tools-development.corp.validere.xyz/emission_calculator/docs/) for schema",
        "tags": [
          "emissions_calculator"
        ]
      }
    },
    "/app/v1/calculators/{calculator_id}": {
      "get": {
        "operationId": "get_calculator",
        "parameters": [
          {
            "$ref": "#/components/parameters/CalculatorId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Get calculator",
        "description": "Refer to [Calculation Service](https://analytics-tools-development.corp.validere.xyz/emission_calculator/docs/) for schema",
        "tags": [
          "emissions_calculator"
        ]
      }
    },
    "/app/v1/calculators/{calculator_id}/versions": {
      "get": {
        "operationId": "get_calculator_versions",
        "parameters": [
          {
            "$ref": "#/components/parameters/CalculatorId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Get calculator versions",
        "description": "Refer to [Calculation Service](https://analytics-tools-development.corp.validere.xyz/emission_calculator/docs/) for schema",
        "tags": [
          "emissions_calculator"
        ]
      }
    },
    "/app/v1/calculators/{calculator_id}/versions/{version_id}": {
      "get": {
        "operationId": "get_calculator_version",
        "parameters": [
          {
            "$ref": "#/components/parameters/CalculatorId"
          },
          {
            "$ref": "#/components/parameters/CalculatorVersionId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Get calculator version",
        "description": "Refer to [Calculation Service](https://analytics-tools-development.corp.validere.xyz/emission_calculator/docs/) for schema",
        "tags": [
          "emissions_calculator"
        ]
      }
    },
    "/app/v1/reporting_groups": {
      "get": {
        "operationId": "list_reporting_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportingGroupIdFilter"
          },
          {
            "$ref": "#/components/parameters/ReportingGroupNameFilter"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedReportingGroupOutput"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List Reporting Groups",
        "tags": [
          "reporting_groups"
        ]
      },
      "post": {
        "operationId": "create_reporting_group",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportingGroupInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportingGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create new Reporting Group",
        "tags": [
          "reporting_groups"
        ]
      }
    },
    "/app/v1/reporting_groups/{id}": {
      "get": {
        "operationId": "get_reporting_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportingGroupId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportingGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a Reporting Group by Id",
        "tags": [
          "reporting_groups"
        ]
      },
      "put": {
        "operationId": "update_reporting_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportingGroupId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportingGroupUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportingGroup"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a Reporting Group by Id",
        "tags": [
          "reporting_groups"
        ]
      },
      "delete": {
        "operationId": "delete_reporting_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportingGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a Reporting Group by Id",
        "tags": [
          "reporting_groups"
        ]
      }
    },
    "/app/v1/reporting_groups/{id}/estimation_methods/{estimation_method_id}": {
      "put": {
        "operationId": "add_estimation_method_reporting_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportingGroupId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodFullId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add a reporting_group/estimation_method relationship",
        "tags": [
          "reporting_groups"
        ]
      },
      "delete": {
        "operationId": "remove_estimation_method_reporting_group",
        "parameters": [
          {
            "$ref": "#/components/parameters/ReportingGroupId"
          },
          {
            "$ref": "#/components/parameters/EstimationMethodFullId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove a reporting_group/estimation_method relationship",
        "tags": [
          "reporting_groups"
        ]
      }
    },
    "/app/v1/records": {
      "post": {
        "operationId": "create_record",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RecordCreateInput"
                  },
                  {
                    "properties": {
                      "values": {
                        "items": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/RecordValueCreateInput"
                            },
                            {
                              "properties": {
                                "measurement_type": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          ]
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Record"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create new record",
        "tags": [
          "records"
        ]
      },
      "put": {
        "operationId": "upsert_record",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RecordCreateInput"
                  },
                  {
                    "properties": {
                      "values": {
                        "items": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/RecordValueCreateInput"
                            },
                            {
                              "properties": {
                                "measurement_type": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            }
                          ]
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Record"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create or update a record",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/search": {
      "post": {
        "operationId": "search_records",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordAssetDetailQuery"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/RecordSort"
                  },
                  {
                    "$ref": "#/components/schemas/RecordFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedAggregatedRecordValues"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Search and list records",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/status": {
      "put": {
        "operationId": "lock_records_by_search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RecordValueLockInput"
                  },
                  {
                    "$ref": "#/components/schemas/RecordLockFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordValueSearchLockResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Search records and set status of their record values",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/export": {
      "post": {
        "operationId": "export_records",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordAssetDetailQuery"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RecordSort"
                  },
                  {
                    "$ref": "#/components/schemas/RecordFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "A successful with the link to download report"
          }
        },
        "summary": "Export records based on search input",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/apply_configuration": {
      "post": {
        "operationId": "apply_record_configuration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "filter": {
                    "$ref": "#/components/schemas/RecordFilterFields"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "records": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid"
                      }
                    },
                    "updated_record_values": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid"
                      }
                    },
                    "failed_record_values": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid"
                      }
                    }
                  }
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Apply record configuration using filter parameters",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/apply_default_configuration": {
      "post": {
        "operationId": "apply_default_configuration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyDefaultRecordValueConfigurationRecordFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkApplyDefaultRecordConfigurationResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Apply default record configuration using filter parameters",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/apply_default_configuration_async": {
      "post": {
        "operationId": "apply_default_configuration_async",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyDefaultRecordValueConfigurationRecordFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkAsyncApplyDefaultRecordConfigurationResponse"
                }
              }
            },
            "description": "Successfully starts an asynchronous job to bulk apply default record configurations"
          }
        },
        "summary": "Start an asynchronous job to bulk apply default record configuration using filter parameters",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/{record_id}": {
      "get": {
        "operationId": "get_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Record"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get record and values",
        "tags": [
          "records"
        ]
      },
      "delete": {
        "operationId": "delete_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete record and values",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/{record_id}/status": {
      "put": {
        "operationId": "lock_record_values_of_record",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordValuesOfRecordLockInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LockRecordValuesOfRecordResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Set status of values of a record (lock/unlock)",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/{entity_type}/input_records/search": {
      "post": {
        "operationId": "search_input_records",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "properties": {
                      "filter": {
                        "$ref": "#/components/schemas/RecordFilterFields"
                      }
                    },
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedInputRecordResults"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/XLSXResponse"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Search and list records that are calculator inputs",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/{entity_type}/input_records/export": {
      "post": {
        "operationId": "export_input_records",
        "parameters": [
          {
            "$ref": "#/components/parameters/AssetType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "filter": {
                    "$ref": "#/components/schemas/RecordFilterFields"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "A successful with the link to download report"
          }
        },
        "summary": "Export records that are calculator inputs",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/{record_id}/value/{measurement_type}": {
      "get": {
        "operationId": "get_record_value",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordId"
          },
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordValue"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get record value",
        "tags": [
          "records"
        ]
      },
      "put": {
        "operationId": "upsert_record_value",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordId"
          },
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordValueCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordValue"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Upsert record value",
        "tags": [
          "records"
        ]
      },
      "delete": {
        "operationId": "delete_record_value",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordId"
          },
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete record value",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/{record_id}/value/{measurement_type}/status": {
      "put": {
        "operationId": "lock_record_value",
        "parameters": [
          {
            "$ref": "#/components/parameters/RecordId"
          },
          {
            "$ref": "#/components/parameters/MeasurementType"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordValueLockInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordValueCreateInput"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Set record value status (lock/unlock)",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/filters": {
      "get": {
        "operationId": "get_records_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          },
          {
            "$ref": "#/components/parameters/FilterStatus"
          },
          {
            "$ref": "#/components/parameters/FilterTag"
          },
          {
            "$ref": "#/components/parameters/FilterCreatedBy"
          },
          {
            "$ref": "#/components/parameters/FilterName"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedRecordFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "records"
        ]
      },
      "post": {
        "operationId": "post_records_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedRecordFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/records/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_records_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "records"
        ]
      },
      "put": {
        "operationId": "put_records_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormSubmissionFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "records"
        ]
      }
    },
    "/app/v1/workflow_categories": {
      "get": {
        "operationId": "list_workflow_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowCategoryName"
          },
          {
            "$ref": "#/components/parameters/WorkflowCategoryDescription"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Pagination"
                    },
                    {
                      "properties": {
                        "data": {
                          "items": {
                            "$ref": "#/components/schemas/IWorkflowCategory"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "List workflow categories",
        "tags": [
          "workflow_categories"
        ]
      },
      "post": {
        "operationId": "create_workflow_category",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ICreateWorkflowCategoryInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflowCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a workflow category",
        "tags": [
          "workflow_categories"
        ]
      }
    },
    "/app/v1/workflow_categories/{id}": {
      "get": {
        "operationId": "get_workflow_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowCategoryId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflowCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a workflow category",
        "tags": [
          "workflow_categories"
        ]
      },
      "put": {
        "operationId": "put_workflow_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowCategoryId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IUpdateWorkflowCategoryInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflowCategory"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a workflow category",
        "tags": [
          "workflow_categories"
        ]
      },
      "delete": {
        "operationId": "delete_workflow_category",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowCategoryId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a workflow category",
        "tags": [
          "workflow_categories"
        ]
      }
    },
    "/app/v1/workflow_templates": {
      "post": {
        "operationId": "create_workflow_template",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ICreateWorkflowTemplateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflowTemplate"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Create a Workflow Template",
        "tags": [
          "workflow_templates"
        ]
      }
    },
    "/app/v1/workflow_templates/search": {
      "post": {
        "operationId": "search_workflow_templates",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/WorkflowTemplateSort"
                  },
                  {
                    "$ref": "#/components/schemas/WorkflowTemplateFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedWorkflowTemplateList"
                }
              }
            },
            "description": "Successfully operation"
          }
        },
        "summary": "Search Workflow Templates",
        "tags": [
          "workflow_templates"
        ]
      }
    },
    "/app/v1/workflow_templates/{id}": {
      "get": {
        "operationId": "get_workflow_template",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowTemplateId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IWorkflowTemplate"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "facility_filter": {
                          "$ref": "#/components/schemas/FacilityFilterFields"
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a workflow template",
        "tags": [
          "workflow_templates"
        ]
      },
      "put": {
        "operationId": "put_workflow_template",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowTemplateId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IUpdateWorkflowTemplateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflowTemplate"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a workflow template",
        "tags": [
          "workflow_templates"
        ]
      },
      "delete": {
        "operationId": "delete_workflow_template",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowTemplateId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a workflow template",
        "tags": [
          "workflow_templates"
        ]
      }
    },
    "/app/v1/workflows": {
      "post": {
        "operationId": "create_workflow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ICreateWorkflowInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Trigger a Workflow",
        "tags": [
          "workflows"
        ]
      }
    },
    "/app/v1/workflows/search": {
      "post": {
        "operationId": "search_workflows",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/WorkflowSort"
                  },
                  {
                    "$ref": "#/components/schemas/WorkflowFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedWorkflowList"
                }
              }
            },
            "description": "Successfully operation"
          }
        },
        "summary": "Search Workflows",
        "tags": [
          "workflows"
        ]
      }
    },
    "/app/v1/workflows/{workflow_id}": {
      "get": {
        "operationId": "get_workflow",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflow"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a workflow",
        "tags": [
          "workflows"
        ]
      },
      "put": {
        "operationId": "put_workflow",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IUpdateWorkflowInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflow"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a workflow",
        "tags": [
          "workflows"
        ]
      },
      "delete": {
        "operationId": "delete_workflow",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowId"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Delete a workflow",
        "tags": [
          "workflows"
        ]
      }
    },
    "/app/v1/workflows/{workflow_id}/form_submissions/search": {
      "post": {
        "operationId": "search_workflow_form_submissions",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/FormSubmissionSort"
                  },
                  {
                    "$ref": "#/components/schemas/FormSubmissionFilter"
                  },
                  {
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedWorkflowFormSubmissionList"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Search form submissions on a workflow",
        "tags": [
          "workflows"
        ]
      }
    },
    "/app/v1/workflow_tasks/search": {
      "post": {
        "operationId": "search_workflow_tasks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/WorkflowTaskSort"
                  },
                  {
                    "$ref": "#/components/schemas/WorkflowTaskFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedWorkflowTaskList"
                }
              }
            },
            "description": "Successfully operation"
          }
        },
        "summary": "Search Workflow Tasks",
        "tags": [
          "workflow_tasks"
        ]
      }
    },
    "/app/v1/workflow_tasks/actions/{workflow_action_id}": {
      "get": {
        "operationId": "get_workflow_action",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowActionId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflowAction"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a workflow action",
        "tags": [
          "workflow_tasks"
        ]
      }
    },
    "/app/v1/workflow_tasks/steps/search": {
      "post": {
        "operationId": "search_workflow_steps",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/WorkflowStepSort"
                  },
                  {
                    "$ref": "#/components/schemas/WorkflowStepFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedWorkflowStepList"
                }
              }
            },
            "description": "Successfully operation"
          }
        },
        "summary": "Search Workflow Steps",
        "tags": [
          "workflow_tasks"
        ]
      }
    },
    "/app/v1/workflow_tasks/{workflow_task_id}": {
      "get": {
        "operationId": "get_workflow_task",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowTaskId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/IWorkflowTask"
                    },
                    {
                      "$ref": "#/components/schemas/WorkflowTaskWithForm"
                    }
                  ]
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Get a workflow task",
        "tags": [
          "workflow_tasks"
        ]
      },
      "put": {
        "operationId": "put_workflow_task",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowTaskId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IUpdateWorkflowTaskInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IWorkflowTask"
                }
              }
            },
            "description": "A successful operation"
          }
        },
        "summary": "Update a workflow task",
        "tags": [
          "workflow_tasks"
        ]
      }
    },
    "/app/v1/workflow_tasks/{workflow_task_id}/form_submission/{form_submission_id}": {
      "put": {
        "operationId": "add_workflow_task_form",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowTaskId"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionIdFull"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionVersionQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Add a workflow task/form submission relationship",
        "tags": [
          "workflow_tasks"
        ]
      },
      "delete": {
        "operationId": "delete_workflow_task_form",
        "parameters": [
          {
            "$ref": "#/components/parameters/WorkflowTaskId"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionIdFull"
          },
          {
            "$ref": "#/components/parameters/FormSubmissionVersionQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful operation"
          }
        },
        "summary": "Remove a workflow task/form submission relationship",
        "tags": [
          "workflow_tasks"
        ]
      }
    },
    "/app/v1/workflow_tasks/filters": {
      "get": {
        "operationId": "get_workflow_tasks_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/SortBy"
          },
          {
            "$ref": "#/components/parameters/SortDirection"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedWorkflowTaskFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "List Filter",
        "tags": [
          "workflow_tasks"
        ]
      },
      "post": {
        "operationId": "post_workflow_tasks_filter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkflowTaskFilterInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowTaskFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Create Filter",
        "tags": [
          "workflow_tasks"
        ]
      }
    },
    "/app/v1/workflow_tasks/filters/{filter_id}": {
      "delete": {
        "operationId": "delete_workflow_tasks_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "summary": "Delete Filter",
        "tags": [
          "workflow_tasks"
        ]
      },
      "put": {
        "operationId": "put_workflow_tasks_filter",
        "parameters": [
          {
            "$ref": "#/components/parameters/FilterId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkflowTaskFilterUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowTaskFilterOutput"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "summary": "Update Filter",
        "tags": [
          "workflow_tasks"
        ]
      }
    },
    "/app/v1/templated_configurations/{templated_configuration_name}": {
      "get": {
        "operationId": "get_templated_configuration",
        "summary": "Get a templated configuration",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedConfigurationName"
          },
          {
            "$ref": "#/components/parameters/TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedConfigurationResponse"
                }
              }
            }
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/{templated_configuration_name}/input_schema": {
      "post": {
        "operationId": "get_templated_configuration_inputs",
        "summary": "Generate an input schema for a templated configuration, enriched with entity subtype specific custom attributes if applicable.",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedConfigurationName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTemplatedConfigurationInputsRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedConfigurationInputsResponseBody"
                }
              }
            }
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/search": {
      "post": {
        "operationId": "search_templated_configuration",
        "summary": "Search templated configurations [System Admin]",
        "parameters": [
          {
            "$ref": "#/components/parameters/TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedConfigurationSort"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedConfigurationFilter"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedTemplatedConfigurationList"
                }
              }
            }
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/search_company": {
      "post": {
        "operationId": "search_company_templated_configuration",
        "summary": "Search for the templated configurations available to the company of the requesting user",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedConfigurationSort"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedConfigurationFilter"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedTemplatedConfigurationList"
                }
              }
            }
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/{templated_configuration_name}/company/{company_id}": {
      "put": {
        "operationId": "add_templated_configuration_to_company",
        "summary": "Make a templated configuration available to a company [System Admin]",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedConfigurationName"
          },
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "tags": [
          "templated_configurations"
        ]
      },
      "delete": {
        "operationId": "remove_templated_configuration_from_company",
        "summary": "Remove a templated configuration from a company [System Admin]",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedConfigurationName"
          },
          {
            "$ref": "#/components/parameters/CompanyId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/{templated_configuration_name}/runs": {
      "post": {
        "operationId": "create_templated_configuration_run",
        "summary": "Create a templated configuration run",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedConfigurationName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemplatedConfigurationRunCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedConfigurationRunResponse"
                }
              }
            }
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/{templated_configuration_name}/runs/{run_id}": {
      "get": {
        "operationId": "get_templated_configuration_run",
        "summary": "Get a templated configuration run",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedConfigurationName"
          },
          {
            "$ref": "#/components/parameters/TemplatedConfigurationRunId"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedConfigurationRunResponse"
                }
              }
            }
          }
        },
        "tags": [
          "templated_configurations"
        ]
      },
      "put": {
        "operationId": "put_templated_configuration_run",
        "summary": "Update a templated configuration run",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedConfigurationName"
          },
          {
            "$ref": "#/components/parameters/TemplatedConfigurationRunId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemplatedConfigurationRunUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedConfigurationRunResponse"
                }
              }
            }
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/runs/search": {
      "post": {
        "operationId": "search_templated_configuration_runs",
        "summary": "Search templated configuration runs",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Paginated"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedConfigurationRunSort"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedConfigurationRunFilter"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedTemplatedConfigurationRunList"
                }
              }
            }
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/{templated_configuration_name}/runs/export": {
      "post": {
        "operationId": "export_templated_configuration_runs",
        "summary": "Export templated configuration runs",
        "parameters": [
          {
            "$ref": "#/components/parameters/TemplatedConfigurationName"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TemplatedConfigurationRunSort"
                  },
                  {
                    "$ref": "#/components/schemas/TemplatedConfigurationRunsExportFilter"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportWithS3Url"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    },
    "/app/v1/templated_configurations/runs/resources/{resource_id}/dependency_graph": {
      "get": {
        "operationId": "get_templated_configuration_run_dependency_graph",
        "summary": "Get templated configuration run dependency graph from a resource",
        "parameters": [
          {
            "$ref": "#/components/parameters/ResourceId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatedConfigurationRunDependencyGraphResponse"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "tags": [
          "templated_configurations"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "AssetType": {
        "description": "Asset Type",
        "example": "equipment",
        "in": "path",
        "name": "entity_type",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/AssetType"
        }
      },
      "PreviewCalculation": {
        "description": "Run calculation without saving the results (true)",
        "example": "",
        "in": "query",
        "name": "preview",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "TenantId": {
        "description": "Tenant ID for admin users",
        "example": "",
        "in": "query",
        "name": "tenant_id",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "PromoteCalculation": {
        "description": "Run calculation and create records from the results",
        "example": "",
        "in": "query",
        "name": "promote_to_record",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "AggregateFunction": {
        "description": "Aggregate Function",
        "example": "avg",
        "in": "query",
        "name": "func",
        "required": false,
        "schema": {
          "enum": [
            "avg",
            "sum"
          ]
        }
      },
      "AlertIdPath": {
        "description": "Alert ID",
        "in": "path",
        "name": "alert_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "AssetGroupId": {
        "description": "Asset Group ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "AssetId": {
        "description": "Asset ID",
        "in": "path",
        "name": "asset_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "CalculatorId": {
        "description": "Calculator ID",
        "in": "path",
        "name": "calculator_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "CalculatorVersionId": {
        "description": "Calculator Version ID",
        "in": "path",
        "name": "version_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "CalculatorVersionInformationFieldQuery": {
        "description": "Calculator Version Information Fields",
        "in": "query",
        "name": "include",
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CalculatorVersionInformationField"
          }
        }
      },
      "ChartId": {
        "description": "Chart ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "CustomAttributeDefinitionArchived": {
        "description": "Set true to return archived attribute definitions",
        "in": "query",
        "name": "archived",
        "required": false,
        "schema": {
          "type": "boolean"
        }
      },
      "CustomAttributeDefinitionFieldName": {
        "description": "String to search for in field names",
        "in": "query",
        "name": "field_name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "CustomAttributeDefinitionEntitySubType": {
        "description": "String to search for in entity subtype",
        "in": "query",
        "name": "entity_subtype",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "CustomAttributeEntityType": {
        "description": "Supported attribute type for custom attribute",
        "example": "equipment",
        "in": "path",
        "name": "entity_type",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/schemas-CustomAttributeEntityType"
        }
      },
      "CustomAttributeFieldName": {
        "description": "field name identifier for custom attribute",
        "example": "attribute_1",
        "in": "path",
        "name": "field_name",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "DashboardDescription": {
        "description": "Dashboard description",
        "in": "query",
        "name": "description",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "DashboardId": {
        "description": "Dashboard ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "DashboardName": {
        "description": "Dashboard name",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "DefaultRecordValueConfigurationId": {
        "description": "Default Record Value Configuration ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "DeviceId": {
        "description": "Id of device",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "path",
        "name": "device_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "DeviceIdQuery": {
        "description": "Id of device",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "query",
        "name": "device_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "MeasurementType": {
        "description": "Measurement type of the measurements being retrieved",
        "example": "volume",
        "in": "path",
        "name": "measurement_type",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "MeasurementTypeQuery": {
        "description": "Measurement type of the measurements being retrieved",
        "example": "volume",
        "in": "query",
        "name": "measurement_type",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "DeviceIdQueryOptional": {
        "description": "ID of device",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "query",
        "name": "device_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "IncludeForms": {
        "description": "If form measurements should be included",
        "in": "query",
        "name": "include_forms",
        "required": false,
        "schema": {
          "type": "boolean"
        }
      },
      "FormSubmissionStatuses": {
        "description": "Form submission status to filter on, can be comma separated list",
        "in": "query",
        "name": "form_submission_statuses",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "DeviceNameQuery": {
        "description": "Search for devices with a name containing this string",
        "example": "My Device Name",
        "in": "query",
        "name": "device_name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "DeviceStatusQuery": {
        "schema": {
          "$ref": "#/components/schemas/DeviceStatus"
        },
        "description": "Device status",
        "example": "active",
        "in": "query",
        "name": "status",
        "required": false
      },
      "DeviceTypeIdQuery": {
        "description": "Device type",
        "example": "emissions_monitor",
        "in": "query",
        "name": "type_id",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "EndDate": {
        "description": "end date",
        "example": "2022-11-30T09:12:28.000Z",
        "in": "query",
        "name": "end",
        "schema": {
          "format": "date-time",
          "type": "string"
        }
      },
      "EquipmentId": {
        "description": "Id of equipment",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "path",
        "name": "equipment_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EquipmentIdQuery": {
        "description": "Id of equipment",
        "example": "51e0b029-2186-4185-8a6e-a525208e6ff1",
        "in": "query",
        "name": "equipment_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EquipmentTypeGroupName": {
        "description": "Name of an equipment type group",
        "in": "path",
        "name": "group_name",
        "required": true,
        "schema": {
          "example": "subpartW",
          "type": "string"
        }
      },
      "EquipmentTypeGroupNameQuery": {
        "description": "equipment type group name",
        "in": "query",
        "name": "group_name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "EquipmentTypeId": {
        "description": "Equipment Type Id",
        "example": "acid_gas_removal",
        "in": "path",
        "name": "type_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "EstimationMethodId": {
        "description": "Estimation Method ID",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EstimationMethodFullId": {
        "description": "Estimation Method ID",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "path",
        "name": "estimation_method_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EstimationMethodEntityType": {
        "description": "Estimation Method Entity Type",
        "example": "equipment",
        "in": "path",
        "name": "entity_type",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "equipment",
            "flow",
            "asset_group"
          ]
        }
      },
      "EstimationMethodInputName": {
        "description": "Input Name",
        "in": "path",
        "name": "input_name",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "EstimationMethodTargetAssetId": {
        "description": "Target Asset ID",
        "in": "path",
        "name": "target_asset_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EventCategoryId": {
        "description": "Event Category ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EventSchemaId": {
        "description": "Event Schema ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EventSchemaQuery": {
        "description": "set to true to include event schema",
        "in": "query",
        "name": "event_schema",
        "example": true,
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "EventId": {
        "description": "Event ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EventIdQuery": {
        "description": "Event ID",
        "in": "query",
        "name": "event_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "EventName": {
        "description": "Event name",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "EventDescription": {
        "description": "Event description",
        "in": "query",
        "name": "description",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "EventStatus": {
        "description": "Event status",
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/EventStatus"
        }
      },
      "EventCategoryName": {
        "description": "Event Category name",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "EventCategoryArchived": {
        "description": "Event Category archived",
        "in": "query",
        "name": "archived",
        "required": false,
        "schema": {
          "default": false,
          "type": "boolean"
        }
      },
      "EventClassification": {
        "description": "Event classification",
        "in": "query",
        "name": "classification",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/EventClassification"
        }
      },
      "EventStartWindow": {
        "description": "Returns all events that were ongoing during the start/end (in UTC)",
        "in": "query",
        "name": "start_window",
        "required": false,
        "schema": {
          "format": "date-time",
          "type": "string"
        }
      },
      "EventEndWindow": {
        "description": "Returns all events that were ongoing during the start/end (in UTC)",
        "in": "query",
        "name": "end_window",
        "required": false,
        "schema": {
          "format": "date-time",
          "type": "string"
        }
      },
      "FacilityId": {
        "description": "Id of facility",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "path",
        "name": "facility_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FacilityIdQuery": {
        "description": "Facility ID",
        "in": "query",
        "name": "facility_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FacilityName": {
        "description": "String to search for in facility names",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "FilterId": {
        "description": "Filter ID",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "path",
        "name": "filter_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FilterStatus": {
        "description": "Filter Status",
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/schemas-FilterStatus"
        }
      },
      "FilterTag": {
        "description": "Filter Tag",
        "in": "query",
        "name": "tag",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "FilterCreatedBy": {
        "description": "Filter Creator",
        "in": "query",
        "name": "created_by",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FilterName": {
        "description": "Filter Name",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "JobId": {
        "description": "Job ID",
        "in": "path",
        "name": "job_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FlowId": {
        "description": "Flow ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FormCategoryArchived": {
        "description": "Form Category archived",
        "in": "query",
        "name": "archived",
        "required": false,
        "schema": {
          "default": false,
          "type": "boolean"
        }
      },
      "FormCategoryId": {
        "description": "Form Category ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FormCategoryIdQuery": {
        "description": "Form Category ID",
        "in": "query",
        "name": "form_category_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FormCategoryName": {
        "description": "Form Category name",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "FormCategoryNameQuery": {
        "description": "Form Category name",
        "in": "query",
        "name": "form_category_name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "FormSchemaId": {
        "description": "Form Schema ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FormSchemaIdParam": {
        "description": "Form Schema ID",
        "in": "path",
        "name": "form_schema_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FormSchemaVersionParam": {
        "description": "Form Schema Version",
        "in": "path",
        "name": "version",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "FormSchemaVersionQuery": {
        "description": "Form Schema Version",
        "in": "query",
        "name": "version",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "FormSchemaName": {
        "description": "Form Schema name",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "FormSchemaStatus": {
        "description": "Form Schema status",
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "enum": [
            "archived",
            "active",
            "draft"
          ]
        }
      },
      "FormSubmissionAnswersQuery": {
        "description": "set to true to include answers",
        "in": "query",
        "name": "answers",
        "example": true,
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "FormSubmissionId": {
        "description": "Form Submission ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FormSubmissionIdFull": {
        "description": "Form Submission ID",
        "in": "path",
        "name": "form_submission_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "FormSubmissionVersionQuery": {
        "description": "Form Submission Version",
        "in": "query",
        "name": "form_submission_version",
        "required": false,
        "schema": {
          "type": "integer"
        }
      },
      "GroupBy": {
        "description": "group by",
        "example": "measurement_type",
        "in": "query",
        "name": "group_by",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "Interval": {
        "description": "interval",
        "example": "1day",
        "in": "query",
        "name": "interval",
        "required": false,
        "schema": {
          "enum": [
            "1minute",
            "15minute",
            "1hour",
            "1day"
          ]
        }
      },
      "LedgerEntryId": {
        "description": "Ledger Entry ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "CompanyId": {
        "schema": {
          "format": "uuid",
          "type": "string"
        },
        "required": true,
        "description": "Company ID",
        "in": "path",
        "name": "company_id"
      },
      "ProjectGroupId": {
        "description": "Project Group ID",
        "in": "path",
        "name": "project_group_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "CreditOwnerId": {
        "description": "Credit Owner ID",
        "in": "path",
        "name": "credit_owner_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "LibraryId": {
        "description": "Library ID",
        "in": "path",
        "name": "library_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "MeasurementTypeSubjectId": {
        "description": "ID of the entity you want to list the measurement types for",
        "in": "query",
        "name": "subject_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "MeasurementTypeSubjectType": {
        "description": "Type of the entity you want to list the measurement types for. Required if ID is defined.",
        "in": "query",
        "name": "subject_type",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/MeasurementSubjectEntityType"
        }
      },
      "MeasurementQuantityId": {
        "description": "ID of the measurement quantity",
        "in": "path",
        "name": "quantity",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "MeasurementSeriesDescription": {
        "description": "String to search for in measurement series descriptions",
        "in": "query",
        "name": "measurement_series_description",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "MeasurementSeriesDeviceId": {
        "description": "UUID of the device to filter on",
        "in": "query",
        "name": "measurement_series_device_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "MeasurementSeriesDeviceName": {
        "description": "String to search for in device names",
        "in": "query",
        "name": "measurement_series_device_name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "MeasurementSeriesId": {
        "description": "ID of the measurement series",
        "in": "path",
        "name": "measurement_series_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "MeasurementSeriesIds": {
        "description": "a comma-separated list of measurement series ids",
        "in": "query",
        "name": "measurement_series_ids",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "MeasurementSeriesSubjectId": {
        "description": "ID of the entity you want to list the measurements for",
        "in": "query",
        "name": "subject_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "MeasurementSeriesSubjectType": {
        "description": "Type of the entity you want to list the measurements for. Required if ID is defined.",
        "in": "query",
        "name": "subject_type",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/MeasurementSubjectEntityType"
        }
      },
      "ReportingGroupId": {
        "description": "ID of report group",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "type": "string",
          "example": "subpartw"
        }
      },
      "ReportingGroupIdFilter": {
        "description": "String to search for in reporting group IDs",
        "in": "query",
        "name": "id",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "ReportingGroupNameFilter": {
        "description": "String to search for in reporting group names",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "RecordId": {
        "description": "ID of the record",
        "in": "path",
        "name": "record_id",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "UserId": {
        "description": "User ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "RoleId": {
        "description": "Role ID",
        "in": "path",
        "name": "role_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "UserGroupId": {
        "description": "User Group ID",
        "in": "path",
        "name": "user_group_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "GroupCategoryId": {
        "description": "Group Category ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "PermissionNamePath": {
        "description": "Permission name",
        "in": "path",
        "name": "permission_name",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "FeatureFlagId": {
        "description": "Feature Flag Name (any version)",
        "in": "path",
        "name": "name",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "FeatureFlagName": {
        "description": "Feature Flag Name (any version)",
        "in": "path",
        "name": "feature_flag_name",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PermissionName": {
        "description": "Permission name",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "PermissionIsFeatureEnabled": {
        "description": "only return permissions whose associated feature flag is enabled globally & for the callee's company",
        "in": "query",
        "name": "isFeatureEnabled",
        "required": false,
        "schema": {
          "type": "boolean"
        }
      },
      "MemberId": {
        "description": "Member ID",
        "in": "path",
        "name": "member_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "Page": {
        "description": "page number",
        "in": "query",
        "name": "page",
        "required": false,
        "schema": {
          "type": "number"
        }
      },
      "PageSize": {
        "description": "page size",
        "in": "query",
        "name": "page_size",
        "required": false,
        "schema": {
          "type": "number"
        }
      },
      "Period": {
        "description": "year month (YYYYMM), defaulting to the current time, indicates which time period to return the attributes and custom attributes from",
        "in": "query",
        "name": "period",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "RelatedEntityIdQuery": {
        "description": "device id or facility id or equipment id",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f",
        "in": "query",
        "name": "related_entity_id",
        "required": false,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "TemplatedReportName": {
        "description": "Templated Report Name",
        "in": "path",
        "name": "templated_report_name",
        "required": true,
        "schema": {
          "enum": [
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "application/json"
          ],
          "type": "string"
        }
      },
      "TemplatedReportCategoryId": {
        "description": "Templated Report Category ID",
        "in": "path",
        "name": "category_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "RecordAssetDetailQuery": {
        "description": "set to true to include asset detail when group by <asset_type>.id",
        "in": "query",
        "name": "asset_detail",
        "example": true,
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "ResourceType": {
        "description": "ResourceType",
        "in": "path",
        "name": "resource_type",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/ResourceType"
        }
      },
      "ResourceId": {
        "description": "Resource ID",
        "in": "path",
        "name": "resource_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SortBy": {
        "description": "sort by",
        "in": "query",
        "name": "sort_by",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "SortByCustomAttributeDefinition": {
        "description": "sort by",
        "in": "query",
        "name": "sort_by",
        "required": false,
        "schema": {
          "enum": [
            "field_name"
          ]
        }
      },
      "SortByEquipment": {
        "description": "sort by",
        "in": "query",
        "name": "sort_by",
        "required": false,
        "schema": {
          "enum": [
            "facility_name",
            "name"
          ]
        }
      },
      "SortByMeasurementSeries": {
        "description": "sort by",
        "in": "query",
        "name": "sort_by",
        "required": false,
        "schema": {
          "enum": [
            "device_name",
            "description"
          ]
        }
      },
      "SortDirection": {
        "description": "sort direction",
        "example": "desc",
        "in": "query",
        "name": "sort_direction",
        "required": false,
        "schema": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string"
        }
      },
      "StartDate": {
        "description": "start date - default value is current date time",
        "example": "2022-11-20T09:12:28.000Z",
        "in": "query",
        "name": "start",
        "schema": {
          "format": "date-time",
          "type": "string"
        }
      },
      "TemplatedConfigurationRunId": {
        "description": "Templated Configuration Run ID",
        "in": "path",
        "name": "run_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "YearMonth": {
        "description": "YearMonth",
        "example": 202210,
        "in": "path",
        "name": "year_month",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "WorkflowCategoryId": {
        "description": "Workflow Category ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "WorkflowCategoryName": {
        "description": "Workflow Category name",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "WorkflowCategoryDescription": {
        "description": "Workflow Category description",
        "in": "query",
        "name": "description",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "WorkflowTemplateId": {
        "description": "Workflow Template ID",
        "in": "path",
        "name": "id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "WorkflowId": {
        "description": "Workflow ID",
        "in": "path",
        "name": "workflow_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "WorkflowTaskId": {
        "description": "Workflow Task ID",
        "in": "path",
        "name": "workflow_task_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "TemplatedConfigurationName": {
        "description": "Templated Configuration Name",
        "in": "path",
        "name": "templated_configuration_name",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "WorkflowActionId": {
        "description": "Workflow Action ID",
        "in": "path",
        "name": "workflow_action_id",
        "required": true,
        "schema": {
          "format": "uuid",
          "type": "string"
        }
      },
      "CommentId": {
        "schema": {
          "$ref": "#/components/schemas/CommentId"
        },
        "required": true,
        "description": "Comment ID",
        "in": "path",
        "name": "comment_id"
      },
      "CommentEntityType": {
        "schema": {
          "$ref": "#/components/schemas/CommentEntityType"
        },
        "required": true,
        "description": "Entity Type",
        "in": "path",
        "name": "entity_type"
      },
      "CommentEntityId": {
        "schema": {
          "$ref": "#/components/schemas/CommentEntityId"
        },
        "required": true,
        "description": "Entity ID",
        "in": "path",
        "name": "entity_id"
      },
      "CommentAdditionalIdentifier": {
        "schema": {
          "$ref": "#/components/schemas/CommentAdditionalIdentifier"
        },
        "required": false,
        "description": "Additional Identifier",
        "in": "query",
        "name": "additional_identifier"
      },
      "CommentCreatedBefore": {
        "schema": {
          "$ref": "#/components/schemas/CommentCreatedBefore"
        },
        "required": false,
        "description": "Comment Created Before filter",
        "in": "query",
        "name": "created_before"
      },
      "CommentEntityIds": {
        "schema": {
          "$ref": "#/components/schemas/CommentEntityIds"
        },
        "required": true,
        "description": "Entity IDs",
        "in": "path",
        "name": "entity_ids"
      },
      "parameters-Period": {
        "schema": {
          "$ref": "#/components/schemas/Period"
        },
        "required": false,
        "description": "year month (YYYYMM), defaulting to the current time, indicates which time period to return the attributes and custom attributes from",
        "in": "query",
        "name": "period"
      },
      "parameters-EstimationMethodEntityType": {
        "schema": {
          "$ref": "#/components/schemas/EstimationMethodEntityType"
        },
        "required": true,
        "description": "Estimation Method Entity Type",
        "in": "path",
        "name": "entity_type"
      },
      "parameters-EstimationMethodId": {
        "schema": {
          "$ref": "#/components/schemas/EstimationMethodId"
        },
        "required": true,
        "description": "Estimation Method ID",
        "in": "path",
        "name": "id",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f"
      },
      "parameters-YearMonth": {
        "schema": {
          "$ref": "#/components/schemas/YearMonth"
        },
        "required": true,
        "description": "Year month (YYYYMM)",
        "in": "path",
        "name": "year_month",
        "example": 202210
      },
      "ReportId": {
        "schema": {
          "$ref": "#/components/schemas/ReportId"
        },
        "required": true,
        "description": "Report ID",
        "in": "path",
        "name": "report_id",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f"
      },
      "TemplatedReportNameQuery": {
        "schema": {
          "type": "string"
        },
        "required": true,
        "description": "Templated Report Name",
        "in": "query",
        "name": "templated_report_name",
        "example": "v2_report"
      },
      "ReportVersion": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/ReportVersion"
            },
            {
              "type": "integer"
            }
          ]
        },
        "required": true,
        "description": "Report Version",
        "in": "path",
        "name": "version",
        "example": 1
      },
      "parameters-TemplatedReportName": {
        "schema": {
          "type": "string"
        },
        "required": true,
        "description": "Templated Report Name",
        "in": "path",
        "name": "templated_report_name",
        "example": "v2_report"
      },
      "parameters-TemplatedReportCategoryId": {
        "schema": {
          "$ref": "#/components/schemas/TemplatedReportCategoryId"
        },
        "required": true,
        "description": "Templated Report Category ID",
        "in": "path",
        "name": "category_id",
        "example": "748970de-fd1f-4494-ae3f-47cc21ff205f"
      }
    },
    "schemas": {
      "JsonSchema": {
        "properties": {
          "additionalProperties": {
            "type": "object",
            "properties": {
              "type": {
                "$ref": "#/components/schemas/JsonSchemaTypes"
              },
              "format": {
                "type": "string"
              },
              "enum": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "items": {
                "type": "object"
              },
              "prefixItems": {
                "type": "array",
                "items": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "AggregatedCalculatorResult": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "calculator_run_id": {
            "type": "string",
            "format": "uuid"
          },
          "result_category": {
            "type": "string",
            "example": "outputs"
          },
          "measurement_unit": {
            "type": "string",
            "example": "g"
          },
          "measurement_value": {
            "type": "number"
          },
          "estimation_method_id": {
            "type": "string",
            "format": "uuid"
          },
          "year_month": {
            "example": 202212,
            "type": "string"
          },
          "equipment": {
            "$ref": "#/components/schemas/EquipmentBasic"
          }
        },
        "type": "object"
      },
      "AggregatedCalculatorResults": {
        "items": {
          "$ref": "#/components/schemas/AggregatedCalculatorResult"
        },
        "type": "array"
      },
      "AggregatedRecordValues": {
        "type": "array",
        "description": "Record value configurations are included when grouping by record or record value id",
        "items": {
          "properties": {
            "measurement_type": {
              "type": "string"
            },
            "measurement_unit": {
              "type": "string"
            },
            "value": {
              "example": 0.22,
              "type": "number"
            },
            "configuration": {
              "$ref": "#/components/schemas/RecordValueConfiguration"
            }
          },
          "type": "object"
        }
      },
      "AnalyticsCalculatorInputs": {
        "type": "object",
        "example": {
          "fuel_type": {
            "value": "Eastern",
            "unit": "",
            "measurement_type": "measurement_type",
            "measurement_quantity": "dimensionless_coefficient"
          },
          "volume": {
            "value": 5,
            "unit": "e3m3",
            "measurement_type": "measurement_type",
            "measurement_quantity": "volume"
          },
          "rvp": null
        }
      },
      "AnalyticsCalculatorAssetInputs": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/AnalyticsCalculatorInputs"
        }
      },
      "AssetAttributeStartEndDateInput": {
        "type": "object",
        "properties": {
          "start_date": {
            "description": "Start date of attributes. If start_date is provided and end_date is not provided, it defaults to the range [start_date, max]. If both start_date and end_date are not provided, it defaults to the range [current year month, next existing year month - 1]",
            "anyOf": [
              {
                "type": "string",
                "example": 202407,
                "description": "Year month formatted as YYYYMM"
              },
              {
                "type": "string",
                "enum": [
                  "min",
                  "max"
                ],
                "example": "min",
                "description": "Year month shorthand"
              }
            ]
          },
          "end_date": {
            "description": "End date of attributes. If end_date is provided and start_date is not provided, it defaults to the range [min, start_date]. If both start_date and end_date are not provided, it defaults to the range [current year month, next existing year month - 1]",
            "anyOf": [
              {
                "type": "string",
                "example": 202407,
                "description": "Year month formatted as YYYYMM"
              },
              {
                "type": "string",
                "enum": [
                  "min",
                  "max"
                ],
                "example": "max",
                "description": "Year month shorthand"
              }
            ]
          }
        }
      },
      "InputRecordResult": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/RecordCreateInput"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "record_value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RecordValueWithCalculatorInputRecord"
                }
              },
              "asset": {
                "$ref": "#/components/schemas/Asset"
              },
              "reporting_group": {
                "$ref": "#/components/schemas/ReportingGroup"
              }
            }
          }
        ]
      },
      "InputRecordResults": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/InputRecordResult"
        }
      },
      "JobItemStatusCounts": {
        "type": "object",
        "properties": {
          "success": {
            "type": "number"
          },
          "failed": {
            "type": "number"
          },
          "skipped": {
            "type": "number"
          }
        }
      },
      "Job": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "$ref": "#/components/schemas/JobStatus"
          },
          "type": {
            "$ref": "#/components/schemas/JobType"
          },
          "started_at": {
            "type": "string",
            "format": "date-time"
          },
          "finished_at": {
            "type": "string",
            "format": "date-time"
          },
          "duration": {
            "type": "number"
          },
          "input": {
            "type": "object"
          },
          "output": {
            "type": "object"
          },
          "total_items": {
            "type": "number"
          },
          "processed_items": {
            "type": "number"
          },
          "item_status_counts": {
            "$ref": "#/components/schemas/JobItemStatusCounts"
          }
        }
      },
      "JobV2": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "$ref": "#/components/schemas/JobStatus"
          },
          "type": {
            "$ref": "#/components/schemas/JobType"
          },
          "started_at": {
            "type": "string",
            "format": "date-time"
          },
          "finished_at": {
            "type": "string",
            "format": "date-time"
          },
          "duration": {
            "type": "number"
          },
          "input": {
            "type": "object"
          },
          "total_items": {
            "type": "number"
          },
          "processed_items": {
            "type": "number"
          },
          "item_status_counts": {
            "$ref": "#/components/schemas/JobItemStatusCounts"
          }
        }
      },
      "PagedJobs": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/Job"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "JobItem": {
        "properties": {
          "key": {
            "type": "string"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "job_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "$ref": "#/components/schemas/BulkItemStatus"
          },
          "input": {
            "type": "object"
          },
          "output": {
            "type": "object"
          }
        }
      },
      "PagedJobItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/JobItem"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "JobFilter": {
        "properties": {
          "filter": {
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "status": {
                "$ref": "#/components/schemas/JobStatus"
              },
              "type": {
                "$ref": "#/components/schemas/JobType"
              },
              "started_at": {
                "type": "string",
                "format": "date-time"
              },
              "finished_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "JobSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "status",
              "type",
              "started_at",
              "finished_at"
            ],
            "example": "type",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "AggregatedRecordValuesResults": {
        "type": "array",
        "items": {
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid"
            },
            "reporting_group_id": {
              "type": "string"
            },
            "year_month": {
              "example": 202212,
              "type": "string"
            },
            "values": {
              "$ref": "#/components/schemas/AggregatedRecordValues"
            }
          },
          "type": "object"
        }
      },
      "Activity": {
        "properties": {
          "resource_type": {
            "type": "string"
          },
          "resource_id": {
            "type": "string",
            "format": "uuid"
          },
          "author_id": {
            "type": "string",
            "format": "uuid"
          },
          "action": {
            "type": "string",
            "format": "uuid"
          },
          "before": {
            "type": "object",
            "example": {
              "name": "old name",
              "description": "old description"
            }
          },
          "after": {
            "type": "object",
            "example": {
              "name": "new name",
              "description": "new description"
            }
          },
          "timestamp": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ActivitySort": {
        "properties": {
          "sort_by": {
            "enum": [
              "resource_type",
              "resource_id",
              "author_id",
              "action",
              "timestamp"
            ],
            "example": "timestamp",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "ActivityFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Activity where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "resource_type": "equipment",
              "resource_id": "1b154c71-67be-1f51-40ce-3aefb42a6480",
              "author_id": "1b154c71-67be-1f51-40ce-3aefb42a6480",
              "action": "update",
              "timestamp": {
                "$gt": "2023-07-01T08:19:25.438Z",
                "$lt": "2023-07-30T08:19:25.438Z"
              }
            },
            "properties": {
              "resource_type": {
                "type": "string"
              },
              "resource_id": {
                "type": "string"
              },
              "author_id": {
                "type": "string"
              },
              "action": {
                "type": "string"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Asset": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "asset_type": {
            "$ref": "#/components/schemas/AssetType"
          }
        }
      },
      "AssetGroupCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "status": {
            "$ref": "#/components/schemas/AssetGroupStatus"
          },
          "asset_group_type_id": {
            "type": "string",
            "enum": [
              "network"
            ]
          },
          "asset_ids": {
            "type": "array",
            "items": {
              "format": "uuid",
              "type": "string"
            }
          },
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          }
        },
        "type": "object"
      },
      "AssetGroupCreateV2": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "status": {
            "$ref": "#/components/schemas/AssetGroupStatus"
          },
          "asset_group_type_id": {
            "type": "string",
            "enum": [
              "network"
            ]
          },
          "asset_ids": {
            "type": "array",
            "items": {
              "format": "uuid",
              "type": "string"
            }
          },
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          },
          "reporting_group_id": {
            "description": "Reporting group ID when `asset_group_type_id=\"network\"`",
            "type": "string",
            "format": "uuid"
          }
        },
        "type": "object"
      },
      "AssetGroupUpdate": {
        "allOf": [
          {
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 100
              },
              "status": {
                "$ref": "#/components/schemas/AssetGroupStatus"
              },
              "custom_attributes": {
                "$ref": "#/components/schemas/CustomAttributes"
              }
            }
          },
          {
            "$ref": "#/components/schemas/AssetAttributeStartEndDateInput"
          }
        ],
        "type": "object"
      },
      "AssetGroupAssetsUpdate": {
        "properties": {
          "asset_ids": {
            "type": "array",
            "items": {
              "format": "uuid",
              "type": "string"
            }
          }
        },
        "type": "object"
      },
      "AssetGroup": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "status": {
            "$ref": "#/components/schemas/AssetGroupStatus"
          },
          "asset_group_type_id": {
            "type": "string",
            "enum": [
              "network"
            ]
          },
          "default_network_reporting_group_id": {
            "type": "string"
          },
          "default_network_reporting_group": {
            "$ref": "#/components/schemas/ReportingGroupInput"
          },
          "default_estimation_method_id": {
            "format": "uuid",
            "type": "string"
          },
          "default_estimation_method": {
            "$ref": "#/components/schemas/EstimationMethodResponse"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "company_id": {
            "format": "uuid",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "updated_by": {
            "format": "uuid",
            "type": "string"
          },
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          }
        },
        "type": "object"
      },
      "AssetGroupWithAssets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AssetGroup"
          },
          {
            "properties": {
              "assets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Asset"
                }
              },
              "network_inlet_ids": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        ],
        "type": "object"
      },
      "AssetGroupAsset": {
        "type": "object",
        "properties": {
          "asset_id": {
            "format": "uuid",
            "type": "string"
          },
          "asset_group_id": {
            "format": "uuid",
            "type": "string"
          }
        }
      },
      "AssetGroupSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "status",
              "asset_group_type_id",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "AssetGroupFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Asset Group where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "$or": [
                {
                  "asset.asset_type": "equipment"
                },
                {
                  "name": {
                    "$like": "Asset Group 1"
                  }
                }
              ]
            },
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/AssetGroupStatus"
              },
              "asset.id": {
                "type": "string"
              },
              "created_at": {
                "type": "string"
              },
              "created_by": {
                "type": "string"
              },
              "updated_at": {
                "type": "string"
              },
              "updated_by": {
                "type": "string"
              },
              "custom_attributes": {
                "type": "object"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "AssetGroupFilterWithPrefix": {
        "properties": {
          "asset_group.id": {
            "type": "string"
          },
          "asset_group.name": {
            "type": "string"
          },
          "asset_group.status": {
            "$ref": "#/components/schemas/AssetGroupStatus"
          },
          "asset_group.asset_group_type_id": {
            "type": "string"
          },
          "asset_group.custom_attributes": {
            "type": "object"
          }
        },
        "type": "object"
      },
      "BulkResponse": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/BulkResponseStatus"
          }
        },
        "type": "object"
      },
      "ApplyDefaultRecordConfigurationItemResponse": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/BulkItemStatus"
          },
          "upserts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordValue"
            }
          }
        }
      },
      "BulkApplyDefaultRecordConfigurationResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BulkResponse"
          },
          {
            "properties": {
              "data": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/ApplyDefaultRecordConfigurationItemResponse"
                }
              },
              "skippedCount": {
                "type": "number"
              }
            }
          }
        ]
      },
      "BulkAsyncApplyDefaultRecordConfigurationResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BulkResponse"
          },
          {
            "properties": {
              "job": {
                "$ref": "#/components/schemas/Job"
              }
            }
          }
        ]
      },
      "Chart": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "dashboard_id": {
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "json": {
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CalculatorResultFilterFields": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/EquipmentFacilityPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/EstimationMethodPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/FlowPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/FlowEquipmentPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/FlowFacilityPrimaryFilterFieldsWithPrefix"
          },
          {
            "properties": {
              "entity_type": {
                "type": "string",
                "example": "equipment"
              },
              "entity_id": {
                "type": "string",
                "format": "uuid",
                "example": {
                  "$in": [
                    "c3e9446d-4cc0-4e7b-bb43-43fff9361957",
                    "c3e9446d-4cc0-4e7b-bb43-43fff9361957",
                    "c3e9446d-4cc0-4e7b-bb43-43fff9361957"
                  ]
                }
              },
              "reporting_group": {
                "type": "string",
                "example": "subpartw"
              },
              "measurement_type": {
                "type": "string"
              },
              "year_month": {
                "type": "string",
                "example": 202201
              }
            },
            "type": "object"
          }
        ]
      },
      "CalculatorResultGroupByFields": {
        "items": {
          "type": "string",
          "enum": [
            "entity_id",
            "estimation_method_id",
            "reporting_group",
            "measurement_type",
            "year_month",
            "equipment.custom_attributes",
            "equipment.id",
            "equipment.name",
            "equipment.status",
            "equipment.type.id",
            "equipment.type.name",
            "equipment.facility.custom_attributes",
            "equipment.facility.id",
            "equipment.facility.name",
            "equipment.facility.status",
            "estimation_method.facility.status",
            "estimation_method.name",
            "estimation_method.entity_id",
            "estimation_method.analytics_library_id",
            "estimation_method.analytics_calculator_id"
          ]
        },
        "type": "array"
      },
      "CalculatorResultSort": {
        "properties": {
          "sort_by": {
            "description": "any field from group_by param",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "CalculatorResultFilter": {
        "properties": {
          "filter": {
            "$ref": "#/components/schemas/CalculatorResultFilterFields"
          },
          "group_by": {
            "$ref": "#/components/schemas/CalculatorResultGroupByFields"
          }
        }
      },
      "CalculatorResultFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/CalculatorResultFilter"
          }
        ],
        "type": "object"
      },
      "CalculatorResultFilterUpdateInput": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/CalculatorResultFilter"
          }
        ]
      },
      "CalculatorResultFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/CalculatorResultFilter"
          },
          {
            "properties": {
              "entity_type": {
                "example": "calculator_result",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "ChartCreate": {
        "properties": {
          "dashboard_id": {
            "type": "string",
            "format": "uuid"
          },
          "json": {
            "type": "object"
          },
          "name": {
            "example": "Chart #1",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartUpdate": {
        "properties": {
          "json": {
            "type": "object"
          },
          "name": {
            "example": "Chart #1",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CompanyEquipmentTypeGroup": {
        "properties": {
          "company_id": {
            "format": "uuid",
            "type": "string"
          },
          "group_name": {
            "example": "subpartW",
            "type": "string"
          }
        }
      },
      "CompanyId": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        }
      },
      "CustomAttributeDataType": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/AttributeTypes"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CustomAttributeDataTypeList": {
        "items": {
          "$ref": "#/components/schemas/CustomAttributeDataType"
        },
        "type": "array"
      },
      "CustomAttributeDefinition": {
        "properties": {
          "archived": {
            "type": "boolean"
          },
          "company_id": {
            "type": "string"
          },
          "data_type": {
            "$ref": "#/components/schemas/AttributeTypes"
          },
          "description": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "entity_type": {
            "$ref": "#/components/schemas/schemas-CustomAttributeEntityType"
          },
          "entity_subtype": {
            "type": "string",
            "deprecated": true
          },
          "entity_subtypes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "field_name": {
            "type": "string"
          },
          "is_required": {
            "type": "boolean"
          },
          "lookup_entity_type": {
            "$ref": "#/components/schemas/MeasurementSubjectEntityType"
          },
          "pick_list_values": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "unit": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CustomAttributeDefinitionInput": {
        "properties": {
          "data_type": {
            "$ref": "#/components/schemas/AttributeTypes"
          },
          "description": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "field_name": {
            "type": "string"
          },
          "is_required": {
            "type": "boolean"
          },
          "lookup_entity_type": {
            "$ref": "#/components/schemas/MeasurementSubjectEntityType"
          },
          "entity_subtype": {
            "type": "string",
            "deprecated": true
          },
          "entity_subtypes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "pick_list_values": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "unit": {
            "type": "string"
          }
        },
        "required": [
          "data_type",
          "display_name",
          "field_name"
        ],
        "type": "object"
      },
      "CustomAttributeDefinitionUpdateInput": {
        "properties": {
          "archived": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "is_required": {
            "type": "boolean"
          },
          "pick_list_values": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "unit": {
            "type": "string"
          },
          "entity_subtype": {
            "type": "string",
            "deprecated": true
          },
          "entity_subtypes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CustomAttributeEntityType": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/schemas-CustomAttributeEntityType"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CustomAttributeEntityTypeList": {
        "items": {
          "$ref": "#/components/schemas/CustomAttributeEntityType"
        },
        "type": "array"
      },
      "CustomAttributes": {
        "example": {
          "attribute1": 12345,
          "attribute2": "value1"
        },
        "type": "object"
      },
      "Dashboard": {
        "properties": {
          "company_id": {
            "format": "uuid",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DashboardCreateUpdate": {
        "properties": {
          "description": {
            "example": "Description of Dashboard #1",
            "type": "string"
          },
          "name": {
            "example": "Dashboard #1",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Device": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "attributes": {
                "$ref": "#/components/schemas/DeviceAttribute"
              },
              "custom_attributes": {
                "$ref": "#/components/schemas/CustomAttributes"
              },
              "facility": {
                "$ref": "#/components/schemas/FacilityNameAndId"
              },
              "facility_id": {
                "description": "facility_id",
                "format": "uuid",
                "type": "string"
              },
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "measurement_types": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "volume"
                },
                "description": "measurement_types"
              },
              "name": {
                "description": "Device name",
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/DeviceStatus",
                "description": "Device status"
              },
              "type_id": {
                "description": "Device type",
                "type": "string"
              }
            },
            "type": "object"
          }
        ]
      },
      "DeviceAttribute": {
        "additionalProperties": true,
        "description": "Device Attributes",
        "example": {
          "height": 10,
          "location": [
            43.65107,
            -79.347015
          ],
          "provider": "provider"
        },
        "type": "object"
      },
      "DevicePrimaryFilterFields": {
        "properties": {
          "attributes": {
            "type": "object"
          },
          "custom_attributes": {
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "measurement_types": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "type_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "DevicePrimaryFilterFieldsWithPrefix": {
        "properties": {
          "device.attributes": {
            "type": "object"
          },
          "device.custom_attributes": {
            "type": "object"
          },
          "device.id": {
            "type": "string"
          },
          "device.measurement_types": {
            "type": "string"
          },
          "device.name": {
            "type": "string"
          },
          "device.status": {
            "type": "string"
          },
          "device.type_id": {
            "type": "string"
          }
        }
      },
      "DeviceFilterFields": {
        "example": {
          "$or": [
            {
              "facility.name": "WellSite1"
            }
          ],
          "custom_attributes.hint": "View schema for all supported fields",
          "custom_attributes.operator": "bob",
          "name": {
            "$like": "wind"
          }
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/DevicePrimaryFilterFields"
          },
          {
            "properties": {
              "event.id": {
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "DeviceFilter": {
        "properties": {
          "filter": {
            "$ref": "#/components/schemas/DeviceFilterFields"
          }
        }
      },
      "DeviceFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/DeviceFilter"
          }
        ],
        "type": "object"
      },
      "DeviceFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/DeviceFilter"
          },
          {
            "properties": {
              "entity_type": {
                "example": "device",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "EventSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "description",
              "status",
              "classification",
              "start",
              "end",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "EventFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for events where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "classification": "A",
              "status": "active",
              "name": {
                "$like": "leak"
              }
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/AssociatedFacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "start_window": {
                    "type": "string"
                  },
                  "end_window": {
                    "type": "string"
                  },
                  "classification": {
                    "type": "string"
                  },
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  },
                  "event_schema_id": {
                    "type": "string"
                  },
                  "event_category_id": {
                    "type": "string"
                  },
                  "created_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "updated_at": {
                    "type": "string",
                    "format": "date-time"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "EventFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/EventFilter"
          }
        ],
        "type": "object"
      },
      "EventFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/EventFilter"
          }
        ],
        "type": "object"
      },
      "EventFilterUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/EventFilter"
          }
        ]
      },
      "EventSchemaSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "description",
              "status",
              "version",
              "priority",
              "event_category.id",
              "event_category.name"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "EventSchemaFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Event Schemas where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "version": "V1",
              "status": "active",
              "name": {
                "$like": "leak"
              }
            },
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "priority": {
                "type": "string"
              },
              "event_category.id": {
                "type": "string"
              },
              "event_category.name": {
                "type": "string"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            },
            "type": "object"
          }
        }
      },
      "FormSubmissionFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/FormSubmissionFilter"
          }
        ]
      },
      "FormSubmissionFilterUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/FormSubmissionFilter"
          }
        ]
      },
      "FormSubmissionFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/FormSubmissionFilter"
          }
        ],
        "type": "object"
      },
      "RecordFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/RecordFilter"
          }
        ]
      },
      "RecordFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/RecordFilter"
          }
        ],
        "type": "object"
      },
      "FlowFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/FlowFilter"
          }
        ]
      },
      "FlowFilterUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/FlowFilter"
          }
        ]
      },
      "FlowFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/FlowFilter"
          }
        ],
        "type": "object"
      },
      "DeviceFilterUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/DeviceFilter"
          }
        ]
      },
      "DeviceInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DeviceUpdateInput"
          },
          {
            "properties": {
              "facility_id": {
                "description": "ID of the facility that the device belongs to",
                "example": "1ca1117d-f2d6-47f5-ae3a-aa1025073717",
                "type": "string"
              },
              "type_id": {
                "description": "Device type",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "DeviceMeasurementSeries": {
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "measurement_type": {
            "type": "string",
            "example": "volume"
          },
          "unit": {
            "type": "string",
            "example": "bbl"
          }
        },
        "type": "object"
      },
      "DeviceSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "status",
              "type_id"
            ],
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "DeviceType": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/DeviceTypeAttribute"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeviceTypeAttribute": {
        "properties": {
          "data_type": {
            "$ref": "#/components/schemas/AttributeTypes"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeviceTypeList": {
        "items": {
          "$ref": "#/components/schemas/DeviceType"
        },
        "type": "array"
      },
      "DeviceUpdateInput": {
        "allOf": [
          {
            "properties": {
              "attributes": {
                "$ref": "#/components/schemas/DeviceAttribute"
              },
              "custom_attributes": {
                "$ref": "#/components/schemas/CustomAttributes"
              },
              "measurement_types": {
                "description": "Measurement types",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "name": {
                "description": "name",
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/DeviceStatus",
                "description": "Device status"
              }
            }
          },
          {
            "$ref": "#/components/schemas/AssetAttributeStartEndDateInput"
          }
        ],
        "type": "object"
      },
      "CalculatorInputRecordInput": {
        "description": "a record value id or filter params to specify one",
        "oneOf": [
          {
            "properties": {
              "record_value_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "properties": {
              "asset_id": {
                "type": "string",
                "format": "uuid"
              },
              "reporting_group_id": {
                "type": "string"
              },
              "year_month": {
                "type": "string"
              },
              "measurement_type": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CalculatorInputRecord": {
        "properties": {
          "estimation_method_id": {
            "type": "string",
            "format": "uuid"
          },
          "input_name": {
            "type": "string"
          },
          "year_month": {
            "type": "string"
          },
          "record_value_id": {
            "type": "string",
            "format": "uuid"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "updated_by": {
            "format": "uuid",
            "type": "string"
          }
        }
      },
      "EstimationMethodDefaultRecordInput": {
        "properties": {
          "measurement_type": {
            "type": "string",
            "example": "wind_speed"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "reporting_group_id": {
            "type": "string"
          }
        }
      },
      "EstimationMethodDefaultRecord": {
        "properties": {
          "method_id": {
            "type": "string",
            "format": "uuid"
          },
          "input_name": {
            "type": "string"
          },
          "measurement_type": {
            "type": "string",
            "example": "wind_speed"
          },
          "asset": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Asset"
              },
              {
                "required": [
                  "id",
                  "asset_type"
                ]
              },
              {
                "properties": {
                  "flow": {
                    "$ref": "#/components/schemas/Flow"
                  },
                  "equipment": {
                    "$ref": "#/components/schemas/Equipment"
                  }
                }
              }
            ]
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "target_asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "reporting_group_id": {
            "type": "string"
          },
          "reporting_group": {
            "$ref": "#/components/schemas/ReportingGroup"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "updated_by": {
            "format": "uuid",
            "type": "string"
          }
        }
      },
      "EstimationMethodDefaultRecordsList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/EstimationMethodDefaultRecord"
        }
      },
      "PaginatedEstimationMethodDefaultRecords": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "$ref": "#/components/schemas/EstimationMethodDefaultRecordsList"
              }
            },
            "type": "object"
          }
        ]
      },
      "EstimationMethodConfigInput": {
        "type": "object",
        "properties": {
          "calculator_version": {
            "type": "string"
          },
          "inputs": {
            "$ref": "#/components/schemas/AnalyticsCalculatorInputs"
          },
          "asset_inputs": {
            "$ref": "#/components/schemas/AnalyticsCalculatorAssetInputs"
          }
        }
      },
      "CalculatorInputSources": {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "record_value_id": {
              "type": "string",
              "format": "uuid"
            },
            "record_id": {
              "type": "string",
              "format": "uuid"
            },
            "asset_id": {
              "type": "string",
              "format": "uuid"
            },
            "target_asset_id": {
              "type": "string",
              "format": "uuid"
            },
            "asset_type": {
              "type": "string",
              "example": "equipment"
            },
            "asset_name": {
              "type": "string",
              "example": "my equipment"
            },
            "reporting_group_id": {
              "type": "string",
              "example": "subpartw"
            },
            "measurement_type": {
              "type": "string",
              "example": "wind_speed"
            },
            "measurement_unit": {
              "type": "string",
              "example": "meters per second"
            },
            "measurement_value": {
              "type": "number",
              "example": 10
            }
          }
        }
      },
      "CalculatorRunInputSources": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CalculatorInputSources"
          },
          {
            "type": "object",
            "properties": {
              "record_value_configuration": {
                "$ref": "#/components/schemas/RecordValueConfiguration"
              }
            }
          }
        ]
      },
      "EstimationMethodConfigurationWithoutInputSources": {
        "properties": {
          "estimation_method_id": {
            "format": "uuid",
            "type": "string"
          },
          "inputs": {
            "$ref": "#/components/schemas/AnalyticsCalculatorInputs"
          },
          "asset_inputs": {
            "$ref": "#/components/schemas/AnalyticsCalculatorAssetInputs"
          },
          "calculator_version": {
            "type": "string",
            "example": "V1"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "updated_by": {
            "format": "uuid",
            "type": "string"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "EstimationMethodConfiguration": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/EstimationMethodConfigurationWithoutInputSources"
          },
          {
            "properties": {
              "input_sources": {
                "$ref": "#/components/schemas/CalculatorInputSources"
              },
              "asset_input_sources": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/CalculatorInputSources"
                }
              }
            }
          }
        ]
      },
      "CalculatorRunsFilter": {
        "type": "object",
        "properties": {
          "filters": {
            "allOf": [
              {
                "properties": {
                  "year_month": {
                    "type": "string",
                    "example": 202306
                  },
                  "status": {
                    "$ref": "#/components/schemas/CalculationStatus"
                  },
                  "estimation_method_id": {
                    "format": "uuid",
                    "type": "string"
                  },
                  "estimation_method.name": {
                    "type": "string"
                  },
                  "estimation_method.analytics_calculator_id": {
                    "$ref": "#/components/schemas/EstimationMethodCalculatorId"
                  },
                  "estimation_method.analytics_library_id": {
                    "$ref": "#/components/schemas/EstimationMethodLibraryId"
                  },
                  "estimation_method.entity_id": {
                    "$ref": "#/components/schemas/EstimationMethodEntityId"
                  },
                  "estimation_method.entity_type": {
                    "type": "string",
                    "enum": [
                      "equipment",
                      "flow",
                      "asset_group"
                    ]
                  },
                  "estimation_method.reporting_group_id": {
                    "type": "string"
                  },
                  "entity_name": {
                    "type": "string"
                  },
                  "entity_type": {
                    "type": "string",
                    "enum": [
                      "equipment",
                      "flow",
                      "asset_group"
                    ]
                  },
                  "facility.id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "facility.name": {
                    "type": "string"
                  }
                }
              },
              {
                "$ref": "#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/EquipmentFacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowFacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowEquipmentPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/AssetGroupFilterWithPrefix"
              }
            ]
          }
        }
      },
      "CalculatorConfigurationPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "configuration.estimation_method_id": {
            "format": "uuid",
            "type": "string"
          },
          "configuration.year_month": {
            "type": "string",
            "example": 202306
          },
          "configuration.calculator_version": {
            "type": "string"
          },
          "configuration.created_at": {
            "type": "string",
            "format": "date-time"
          },
          "configuration.updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CalculatorRunsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "array",
              "$ref": "#/components/schemas/CalculatorRunResponse"
            }
          }
        }
      },
      "RunItemResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/BulkItemStatus"
          },
          "result": {
            "$ref": "#/components/schemas/CalculatorRunResponse"
          },
          "error": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "description": "List of errors",
            "items": {
              "$ref": "#/components/schemas/CalculationResultError"
            }
          }
        }
      },
      "CalculationResultError": {
        "description": "Calculation specific error",
        "type": "object",
        "properties": {
          "loc": {
            "description": "Parameter where the error occurred",
            "type": "string",
            "example": "mass_injected"
          },
          "msg": {
            "description": "Error message",
            "type": "string",
            "example": "Field required"
          },
          "type": {
            "description": "Type of error",
            "type": "string",
            "example": "missing"
          }
        }
      },
      "CalculatorRunsBulkResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BulkResponse"
          },
          {
            "properties": {
              "data": {
                "type": "object",
                "description": "Dictionary of results where the key is the node ID",
                "additionalProperties": {
                  "$ref": "#/components/schemas/RunItemResponse"
                }
              },
              "error": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CalculatorAsyncRunsBulkResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BulkResponse"
          },
          {
            "properties": {
              "job": {
                "$ref": "#/components/schemas/Job"
              }
            }
          }
        ]
      },
      "CalculatorRunResponse": {
        "type": "object",
        "properties": {
          "estimation_method_id": {
            "format": "uuid",
            "type": "string"
          },
          "year_month": {
            "type": "string"
          },
          "calculation_end": {
            "format": "date-time",
            "type": "string"
          },
          "calculation_start": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "company_id": {
            "format": "uuid",
            "type": "string"
          },
          "configuration_input": {
            "type": "object"
          },
          "configuration_asset_input": {
            "type": "object"
          },
          "input": {
            "$ref": "#/components/schemas/CalculatorInput"
          },
          "output": {
            "$ref": "#/components/schemas/CalculatorOutput"
          }
        }
      },
      "CalculatorRun422Error": {
        "properties": {
          "status": {
            "type": "boolean"
          },
          "error": {
            "type": "string",
            "description": "Error message",
            "example": "Validation failed for node 9a911b4d-c6c9-4faa-acbe-f8297b1dbd6d_202403, calculation CO2InjectedMassFlowMeterV1"
          },
          "detail": {
            "type": "object",
            "properties": {
              "errors": {
                "type": "array",
                "description": "List of errors",
                "items": {
                  "$ref": "#/components/schemas/CalculationResultError"
                }
              }
            }
          }
        }
      },
      "CalculatorRunSourceResponse": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CalculatorRunResponse"
          },
          {
            "type": "object",
            "properties": {
              "input_sources": {
                "$ref": "#/components/schemas/CalculatorRunInputSources"
              }
            }
          }
        ]
      },
      "CalculatorInput": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "bfbd6b12-4229-4c43-b08f-94f2a72fa0f8_202305"
          },
          "calculation": {
            "$ref": "#/components/schemas/CalculatorInputCalculation"
          }
        }
      },
      "CalculatorInputCalculation": {
        "type": "object",
        "properties": {
          "calculation_id": {
            "type": "string",
            "example": "CO2InjectedMassFlowMeterV1"
          },
          "calculation_parameters": {
            "type": "object",
            "items": {
              "$ref": "#/components/schemas/CalculatorInputParameter"
            }
          }
        }
      },
      "CalculatorOutput": {
        "type": "object",
        "properties": {
          "intermediates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalculatorOutputMeasurement"
            }
          },
          "outputs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalculatorOutputMeasurement"
            }
          }
        }
      },
      "CalculatorOutputMeasurement": {
        "type": "object",
        "properties": {
          "measurement_quantity": {
            "type": "string",
            "example": "Mass CO2"
          },
          "measurement_type": {
            "type": "string",
            "example": "Mass"
          },
          "measurement_unit": {
            "type": "string",
            "example": "grams"
          },
          "measurement_value": {
            "type": "number",
            "example": 25400
          },
          "description": {
            "type": "string",
            "example": "Mass of CO2 injected"
          },
          "type": {
            "type": "string",
            "example": "number"
          },
          "calculator_run_id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "CalculatorInputParameter": {
        "properties": {
          "id": {
            "type": "string",
            "example": "mass_injected"
          },
          "display_name": {
            "type": "string",
            "example": "Mass Injected"
          },
          "required": {
            "type": "boolean",
            "example": true
          },
          "measurement_quantity": {
            "type": "string",
            "example": "Mass CO2"
          },
          "measurement_type": {
            "type": "string",
            "example": "Mass"
          },
          "measurement_unit": {
            "type": "string",
            "example": "grams"
          },
          "description": {
            "type": "string",
            "example": "Mass of CO2 injected"
          },
          "type": {
            "type": "string",
            "example": "number"
          },
          "minimum": {
            "type": "number",
            "example": 0
          },
          "maximum": {
            "type": "number",
            "example": 100
          },
          "min_length": {
            "type": "number",
            "example": 0
          },
          "mex_length": {
            "type": "number",
            "example": 100
          },
          "measurement_value": {
            "type": "number",
            "example": 25400
          }
        }
      },
      "CreateEstimationMethodsBulkItemResponse": {
        "type": "object",
        "properties": {
          "entity_type": {
            "type": "string"
          },
          "entity_id": {
            "type": "string",
            "format": "uuid"
          },
          "estimation_method": {
            "$ref": "#/components/schemas/EstimationMethodWithEntityInfoResponse"
          }
        }
      },
      "CreateEstimationMethodsBulkResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BulkResponse"
          },
          {
            "properties": {
              "data": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/CreateEstimationMethodsBulkItemResponse"
                }
              }
            }
          }
        ]
      },
      "DefaultRecordValueConfigurationSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "measurement_type",
              "measurement_unit",
              "asset_id",
              "reporting_group_id",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "DefaultRecordValueConfigurationFilter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "measurement_unit": {
            "type": "string"
          },
          "measurement_type": {
            "type": "string"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "asset_type": {
            "type": "string"
          },
          "reporting_group_id": {
            "type": "string"
          },
          "reporting_group_name": {
            "type": "string"
          }
        }
      },
      "ApplyDefaultRecordValueConfigurationDefaultsFilterInput": {
        "properties": {
          "filter": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/DefaultRecordValueConfigurationFilter"
              },
              {
                "properties": {
                  "year_month": {
                    "description": "Year Months to create records for",
                    "properties": {
                      "$in": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "example": 202301
                        }
                      }
                    }
                  }
                }
              }
            ]
          }
        }
      },
      "DefaultRecordValueConfigurationInput": {
        "type": "object",
        "properties": {
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "reporting_group_id": {
            "type": "string"
          },
          "measurement_type": {
            "type": "string",
            "example": "volume"
          },
          "measurement_unit": {
            "type": "string",
            "example": "bbl"
          },
          "default_value": {
            "type": "number",
            "nullable": true
          },
          "configuration": {
            "$ref": "#/components/schemas/RecordValueDefaultConfiguration",
            "nullable": true
          }
        }
      },
      "DefaultRecordValueConfiguration": {
        "allOf": [
          {
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "$ref": "#/components/schemas/DefaultRecordValueConfigurationInput"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          }
        ]
      },
      "DeviceWithFacility": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Device"
          },
          {
            "properties": {
              "facility": {
                "$ref": "#/components/schemas/FacilityNameAndId"
              },
              "measurement_series": {
                "items": {
                  "$ref": "#/components/schemas/DeviceMeasurementSeries"
                },
                "type": "array"
              }
            }
          }
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "units": {
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ]
          }
        }
      },
      "EquipmentBasic": {
        "properties": {
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          },
          "effective_date": {
            "example": "2022-01-01",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "latitude": {
            "$ref": "#/components/schemas/Latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/Longitude"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/EquipmentTypeShallow"
          }
        },
        "type": "object"
      },
      "Equipment": {
        "properties": {
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          },
          "effective_date": {
            "example": "2022-01-01",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "latitude": {
            "$ref": "#/components/schemas/Latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/Longitude"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/EquipmentTypeShallow"
          }
        },
        "type": "object"
      },
      "EquipmentFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for equipment where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "$or": [
                {
                  "facility.name": "WellSite1"
                }
              ],
              "custom_attributes.hint": "View schema for all supported fields",
              "custom_attributes.operator": {
                "$in": [
                  "Bob",
                  "Alice",
                  "Eve"
                ]
              },
              "name": {
                "$like": "Compressor"
              }
            },
            "$ref": "#/components/schemas/EquipmentFilterFields"
          }
        }
      },
      "EquipmentFilterFields": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EquipmentPrimaryFilterFields"
          },
          {
            "$ref": "#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix"
          },
          {
            "properties": {
              "event.id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        ]
      },
      "EquipmentPrimaryFilterFields": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/EquipmentStatus"
          },
          "type.id": {
            "type": "string"
          },
          "type.name": {
            "type": "string"
          },
          "custom_attributes": {
            "type": "object"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "type": "object"
      },
      "EquipmentPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "equipment.custom_attributes": {
            "type": "object"
          },
          "equipment.id": {
            "type": "string"
          },
          "equipment.name": {
            "type": "string"
          },
          "equipment.status": {
            "$ref": "#/components/schemas/EquipmentStatus"
          },
          "equipment.type.id": {
            "type": "string"
          },
          "equipment.type.name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "EquipmentFacilityPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "equipment.facility.custom_attributes": {
            "type": "object"
          },
          "equipment.facility.id": {
            "type": "string"
          },
          "equipment.facility.name": {
            "type": "string"
          },
          "equipment.facility.status": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FlowFacilityPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "flow.facility.custom_attributes": {
            "type": "object"
          },
          "flow.facility.id": {
            "type": "string"
          },
          "flow.facility.name": {
            "type": "string"
          },
          "flow.facility.status": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FlowEquipmentPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "flow.equipment.custom_attributes": {
            "type": "object"
          },
          "flow.equipment.id": {
            "type": "string"
          },
          "flow.equipment.name": {
            "type": "string"
          },
          "flow.equipment.status": {
            "$ref": "#/components/schemas/EquipmentStatus"
          },
          "flow.equipment.type.id": {
            "type": "string"
          },
          "equipment.type.name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AssociatedFacilityPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "associated_facility.custom_attributes": {
            "type": "object"
          },
          "associated_facility.id": {
            "type": "string"
          },
          "associated_facility.name": {
            "type": "string"
          },
          "associated_facility.status": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FacilityPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "facility.custom_attributes": {
            "type": "object"
          },
          "facility.id": {
            "type": "string"
          },
          "facility.name": {
            "type": "string"
          },
          "facility.status": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "EstimationMethodPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "estimation_method.id": {
            "type": "string"
          },
          "estimation_method.name": {
            "type": "string"
          },
          "estimation_method.entity_id": {
            "type": "string"
          },
          "estimation_method.analytics_library_id": {
            "type": "string"
          },
          "estimation_method.analytics_calculator_id": {
            "type": "string"
          },
          "estimation_method.created_at": {
            "type": "string"
          },
          "estimation_method.created_by": {
            "type": "string"
          },
          "estimation_method.updated_at": {
            "type": "string"
          },
          "estimation_method.updated_by": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "EquipmentFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/EquipmentFilter"
          }
        ],
        "type": "object"
      },
      "EquipmentFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/EquipmentFilter"
          },
          {
            "properties": {
              "entity_type": {
                "example": "equipment",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "EquipmentFilterUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/EquipmentFilter"
          }
        ]
      },
      "EquipmentInput": {
        "properties": {
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          },
          "effective_date": {
            "example": "2022-01-01",
            "type": "string"
          },
          "facility_id": {
            "description": "ID of the facility that the equipment belongs to",
            "type": "string"
          },
          "latitude": {
            "$ref": "#/components/schemas/Latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/Longitude"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/EquipmentStatus"
          },
          "type_id": {
            "$ref": "#/components/schemas/EquipmentTypeId"
          }
        },
        "type": "object"
      },
      "EquipmentSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "facility_name",
              "name"
            ],
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "EquipmentType": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "EquipmentTypeId": {
        "type": "string",
        "enum": [
          "acid_gas_removal",
          "desiccant_dehydrator",
          "ng_pneumatic_devices"
        ]
      },
      "EquipmentTypeList": {
        "items": {
          "$ref": "#/components/schemas/EquipmentType"
        },
        "type": "array"
      },
      "EquipmentTypeShallow": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "EquipmentUpdateInput": {
        "allOf": [
          {
            "properties": {
              "custom_attributes": {
                "$ref": "#/components/schemas/CustomAttributes"
              },
              "latitude": {
                "$ref": "#/components/schemas/Latitude"
              },
              "longitude": {
                "$ref": "#/components/schemas/Longitude"
              },
              "name": {
                "type": "string"
              },
              "type_id": {
                "$ref": "#/components/schemas/EquipmentTypeId",
                "description": "Equipment Type ID",
                "example": "ng_pneumatic_devices"
              },
              "status": {
                "$ref": "#/components/schemas/EquipmentStatus"
              },
              "facility_id": {
                "description": "ID of the facility that the equipment belongs to",
                "type": "string",
                "format": "uuid"
              }
            },
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/AssetAttributeStartEndDateInput"
          }
        ]
      },
      "EquipmentWithFacility": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "custom_attributes": {
                "$ref": "#/components/schemas/CustomAttributes"
              },
              "effective_date": {
                "example": "2022-01-01",
                "type": "string"
              },
              "facility": {
                "$ref": "#/components/schemas/FacilityNameAndId"
              },
              "id": {
                "type": "string"
              },
              "latitude": {
                "$ref": "#/components/schemas/Latitude"
              },
              "longitude": {
                "$ref": "#/components/schemas/Longitude"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/EquipmentStatus"
              },
              "type": {
                "$ref": "#/components/schemas/EquipmentTypeShallow"
              }
            },
            "type": "object"
          }
        ]
      },
      "EstimationMethodLibraryId": {
        "description": "ID of the library the analytics calculator ID belongs to",
        "type": "string",
        "example": "SubpartW"
      },
      "EstimationMethodCalculatorId": {
        "description": "ID of an analytics calculator, used to determine estimation method metadata",
        "type": "string",
        "example": "AcidGasRemovalMethod1"
      },
      "EstimationMethodEntityId": {
        "description": "ID of the entity that the estimation belongs to",
        "type": "string",
        "example": "a48fdf7a-c4c1-45ae-a794-139b134b622b"
      },
      "EstimationMethodSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "entity_id",
              "entity_type",
              "analytics_library_id",
              "analytics_calculator_id",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "EstimationMethodConfigurationSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "year_month",
              "entity_id",
              "entity_type",
              "analytics_library_id",
              "analytics_calculator_id",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "EstimationMethodFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Estimation Methods where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "$or": [
                {
                  "entity_type": "equipment"
                },
                {
                  "name": {
                    "$like": "Emissions"
                  }
                }
              ]
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/EquipmentFacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowFacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowEquipmentPrimaryFilterFieldsWithPrefix"
              },
              {
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "entity_id": {
                    "type": "string"
                  },
                  "entity_type": {
                    "type": "string",
                    "enum": [
                      "equipment",
                      "flow",
                      "asset_group"
                    ]
                  },
                  "analytics_library_id": {
                    "type": "string"
                  },
                  "analytics_calculator_id": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "created_by": {
                    "type": "string"
                  },
                  "updated_at": {
                    "type": "string"
                  },
                  "updated_by": {
                    "type": "string"
                  },
                  "reporting_group_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            ],
            "type": "object"
          }
        }
      },
      "EstimationMethodConfigurationFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Estimation Methods where it can filter based on any of these following fields.",
            "example": {
              "year_month": {
                "$in": [
                  202301,
                  202302,
                  202303
                ]
              }
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/EquipmentFacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowFacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowEquipmentPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/AssetGroupFilterWithPrefix"
              },
              {
                "$ref": "#/components/schemas/CalculatorConfigurationPrimaryFilterFieldsWithPrefix"
              },
              {
                "properties": {
                  "year_month": {
                    "type": "object",
                    "properties": {
                      "$in": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "example": 202301
                        }
                      }
                    }
                  },
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "entity_id": {
                    "type": "string"
                  },
                  "entity_name": {
                    "type": "string"
                  },
                  "entity_type": {
                    "type": "string",
                    "enum": [
                      "equipment",
                      "flow",
                      "asset_group"
                    ]
                  },
                  "analytics_library_id": {
                    "type": "string"
                  },
                  "analytics_calculator_id": {
                    "type": "string"
                  },
                  "estimation_method_status": {
                    "type": "string"
                  },
                  "facility_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "facility_name": {
                    "type": "string"
                  },
                  "status": {
                    "$ref": "#/components/schemas/CalculationStatus"
                  },
                  "reporting_group_id": {
                    "type": "string"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "created_by": {
                    "type": "string"
                  },
                  "updated_at": {
                    "type": "string"
                  },
                  "updated_by": {
                    "type": "string"
                  }
                },
                "type": "object",
                "required": [
                  "year_month"
                ]
              }
            ],
            "type": "object"
          }
        }
      },
      "EventCategoryCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "archived": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "EventCategoryUpdate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "archived": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "EventCategory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EventCategoryCreate"
          },
          {
            "properties": {
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "created_at": {
                "format": "date-time",
                "type": "string"
              },
              "updated_at": {
                "format": "date-time",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "EventSchemaConfig": {
        "properties": {
          "has_due_date": {
            "type": "boolean",
            "example": true
          },
          "due_date": {
            "properties": {
              "relative_time": {
                "type": "boolean",
                "example": true
              },
              "time_period": {
                "type": "string",
                "example": "days"
              },
              "duration": {
                "type": "number",
                "example": 7
              }
            },
            "type": "object"
          },
          "has_forms": {
            "type": "boolean"
          },
          "forms": {
            "properties": {
              "required_templates": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "c482584f-0402-4b6f-9ca4-124e2775a172"
                }
              },
              "suggested_templates": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "43c0aab0-2a67-47c1-aa7d-cb16055d6432"
                }
              }
            },
            "type": "object"
          },
          "has_alerts": {
            "type": "boolean"
          },
          "has_flows": {
            "type": "boolean"
          },
          "has_equipment": {
            "type": "boolean"
          },
          "equipment": {
            "properties": {
              "is_mandatory": {
                "type": "boolean",
                "example": true
              },
              "has_source": {
                "type": "boolean",
                "example": true
              }
            },
            "type": "object"
          },
          "has_devices": {
            "type": "boolean"
          }
        }
      },
      "EventSchemaCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "version": {
            "type": "string",
            "maxLength": 20
          },
          "priority": {
            "type": "string",
            "enum": [
              "high",
              "medium",
              "low"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "archived"
            ]
          },
          "description": {
            "type": "string",
            "maxLength": 256
          },
          "config": {
            "$ref": "#/components/schemas/EventSchemaConfig"
          },
          "event_category_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "type": "object"
      },
      "EventSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSchemaCreate"
          },
          {
            "properties": {
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "created_at": {
                "format": "date-time",
                "type": "string"
              },
              "created_by": {
                "format": "uuid",
                "type": "string"
              },
              "updated_at": {
                "format": "date-time",
                "type": "string"
              },
              "updated_by": {
                "format": "uuid",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "EventSchemaWithForms": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EventSchema"
          },
          {
            "properties": {
              "form_schemas": {
                "type": "array",
                "items": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "form_category": {
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "required": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            }
          }
        ],
        "type": "object"
      },
      "Event": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EventCreate"
          },
          {
            "properties": {
              "created_at": {
                "format": "date-time",
                "type": "string"
              },
              "created_by": {
                "format": "uuid",
                "type": "string"
              },
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "updated_at": {
                "format": "date-time",
                "type": "string"
              }
            }
          }
        ]
      },
      "EventWithAssociatedFacility": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Event"
          },
          {
            "properties": {
              "associated_facility": {
                "$ref": "#/components/schemas/Facility"
              }
            }
          }
        ]
      },
      "EventWithDuration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EventWithAssociatedFacility"
          },
          {
            "properties": {
              "duration": {
                "type": "string",
                "example": "10 days 12 hours"
              }
            }
          }
        ]
      },
      "EventWithSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EventWithDuration"
          },
          {
            "properties": {
              "event_schema": {
                "$ref": "#/components/schemas/EventSchema"
              }
            }
          }
        ]
      },
      "EventCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "description": {
            "type": "string",
            "maxLength": 256
          },
          "status": {
            "$ref": "#/components/schemas/EventStatus"
          },
          "classification": {
            "$ref": "#/components/schemas/EventClassification"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "event_schema_id": {
            "format": "uuid",
            "type": "string"
          },
          "associated_facility_id": {
            "format": "uuid",
            "type": "string"
          },
          "completed_at": {
            "format": "date-time",
            "type": "string"
          },
          "due_date": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EventAlert": {
        "properties": {
          "event_id": {
            "format": "uuid",
            "type": "string"
          },
          "alert_id": {
            "format": "uuid",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Facility": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "custom_attributes": {
                "$ref": "#/components/schemas/CustomAttributes"
              },
              "latitude": {
                "$ref": "#/components/schemas/Latitude"
              },
              "longitude": {
                "$ref": "#/components/schemas/Longitude"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/FacilityStatus"
              },
              "type": {
                "$ref": "#/components/schemas/FacilityType"
              },
              "id": {
                "format": "uuid",
                "type": "string"
              }
            },
            "type": "object"
          }
        ]
      },
      "FacilityFilter": {
        "properties": {
          "filter": {
            "$ref": "#/components/schemas/FacilityFilterFields"
          }
        }
      },
      "FacilityFilterFields": {
        "description": "A filter object for facility where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
        "example": {
          "custom_attributes.hint": "View schema for all supported fields",
          "custom_attributes.operator": "bob",
          "name": {
            "$like": "wind"
          }
        },
        "properties": {
          "custom_attributes": {
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "event.id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "type": "object"
      },
      "FacilityFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/FacilityFilter"
          }
        ],
        "type": "object"
      },
      "FacilityFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/FacilityFilter"
          },
          {
            "properties": {
              "entity_type": {
                "example": "facility",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "FacilityFilterUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/FacilityFilter"
          }
        ]
      },
      "FacilityInput": {
        "properties": {
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          },
          "latitude": {
            "$ref": "#/components/schemas/Latitude"
          },
          "longitude": {
            "$ref": "#/components/schemas/Longitude"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/FacilityStatus"
          },
          "type": {
            "$ref": "#/components/schemas/FacilityType"
          }
        },
        "type": "object"
      },
      "FacilityList": {
        "items": {
          "$ref": "#/components/schemas/Facility"
        },
        "type": "array"
      },
      "FacilityNameAndId": {
        "example": {
          "id": "1ca1117d-f2d6-47f5-ae3a-aa1025073717",
          "name": "Facility 1"
        },
        "properties": {
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FacilitySort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "status"
            ],
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "AssetSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "asset_type"
            ],
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "FacilityStatus": {
        "type": "string",
        "description": "Use `id` value of any index in `GET /v1/facility_statuses`"
      },
      "FacilityType": {
        "type": "string",
        "description": "Use `id` value of any index in `GET /v1/facility_types`"
      },
      "FacilityUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FacilityInput"
          },
          {
            "$ref": "#/components/schemas/AssetAttributeStartEndDateInput"
          }
        ],
        "type": "object"
      },
      "FacilityWithEquipment": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Facility"
          },
          {
            "properties": {
              "equipment": {
                "items": {
                  "$ref": "#/components/schemas/Equipment"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "FilterId": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        }
      },
      "FilterName": {
        "properties": {
          "name": {
            "type": "string",
            "example": "My first filter"
          }
        }
      },
      "FilterStatus": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/TemplatedReportStatus"
          }
        }
      },
      "FilterTag": {
        "properties": {
          "tag": {
            "type": "string"
          }
        }
      },
      "FilterMetadata": {
        "properties": {
          "metadata": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "example": [
              {
                "key": "calculator_configuration.year_month",
                "isSelected": true
              },
              {
                "key": "flow.type",
                "isSelected": false
              }
            ]
          }
        }
      },
      "FilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterName"
          },
          {
            "$ref": "#/components/schemas/FilterStatus"
          },
          {
            "$ref": "#/components/schemas/FilterTag"
          },
          {
            "$ref": "#/components/schemas/FilterMetadata"
          }
        ]
      },
      "FilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CompanyId"
          },
          {
            "$ref": "#/components/schemas/FilterId"
          },
          {
            "$ref": "#/components/schemas/FilterInput"
          }
        ],
        "type": "object"
      },
      "FormCategory": {
        "properties": {
          "archived": {
            "type": "boolean"
          },
          "company_id": {
            "format": "uuid",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "FormCategoryInput": {
        "properties": {
          "archived": {
            "default": false,
            "example": false,
            "type": "boolean"
          },
          "name": {
            "example": "Truck Tickets",
            "type": "string"
          }
        },
        "type": "object"
      },
      "FormCategoryUpdate": {
        "properties": {
          "archived": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FormSchema": {
        "properties": {
          "company_id": {
            "format": "uuid",
            "type": "string"
          },
          "config": {
            "$ref": "#/components/schemas/FormSchemaConfig"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "description": {
            "maxLength": 1024,
            "type": "string"
          },
          "form_submission_editable": {
            "type": "boolean"
          },
          "form_category_id": {
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "archived",
              "draft"
            ],
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "default": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "FormSchemaConfig": {
        "properties": {
          "questions": {
            "additionalProperties": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/FormSchemaQuestion"
                },
                {
                  "$ref": "#/components/schemas/FormSchemaMeasurement"
                }
              ]
            },
            "example": {
              "questionId1": {
                "description": "Look at gauge",
                "subject_lookup_question_id": "lookupQuestionId",
                "source_lookup_question_id": "deviceQuestion",
                "measurement_time_question_id": "measurementTimeQuestion",
                "is_required": false,
                "measurement_type": "temperature",
                "measurement_unit": "degrees Celsius",
                "prompt": "Input measurement 1",
                "type": "measurement",
                "default_answer": 40,
                "minimum": 1,
                "maximum": 100
              },
              "questionId2": {
                "data_type": "string",
                "description": "Is gauge working?",
                "is_required": false,
                "prompt": "Input question 1",
                "type": "question",
                "min_length": 1,
                "max_length": 100
              },
              "questionId3": {
                "data_type": "string",
                "description": "Description of the problem",
                "is_required": false,
                "prompt": "Question 2",
                "type": "question",
                "is_long_string": true
              },
              "questionIdBoolean": {
                "data_type": "boolean",
                "description": "Input question Boolean",
                "is_required": false,
                "prompt": "Input question Boolean",
                "type": "question"
              },
              "facilityLookupQuestionId": {
                "data_type": "lookup",
                "description": "Facility",
                "is_required": false,
                "lookup_entity_type": "facility",
                "prompt": "Facility checked",
                "type": "question"
              },
              "lookupQuestionId": {
                "data_type": "lookup",
                "description": "Equipment that has the temperature sensor",
                "is_required": false,
                "lookup_entity_type": "equipment",
                "prompt": "Equipment checked",
                "parent_facility_question_id": "facilityLookupQuestionId",
                "filter": {
                  "name": {
                    "$like": "AB123"
                  }
                },
                "type": "question",
                "conditions": {
                  "$or": [
                    {
                      "questionId1": {
                        "$gt": 5
                      },
                      "questionId2": 10
                    },
                    {
                      "questionId3": 1
                    }
                  ]
                }
              },
              "deviceQuestion": {
                "data_type": "lookup",
                "description": "Device that monitors temperature",
                "is_required": false,
                "lookup_entity_type": "device",
                "prompt": "Gauge that was read",
                "type": "question",
                "conditions": {
                  "questionIdBoolean": true
                }
              },
              "measurementTimeQuestion": {
                "data_type": "date-time",
                "description": "Time the temperature sensor was read",
                "is_required": false,
                "prompt": "Measurement Time",
                "type": "question",
                "default_answer": "$now",
                "before": "2024-01-01",
                "after": "$now"
              },
              "note": {
                "data_type": "string",
                "description": "note",
                "is_required": false,
                "prompt": "note",
                "type": "question",
                "default_answer": {
                  "lookup_question_id": "facilityLookupQuestionId",
                  "lookup_attribute": "area"
                }
              },
              "fileUploadQuestion": {
                "data_type": "file",
                "description": "File",
                "is_required": false,
                "prompt": "File",
                "type": "question"
              }
            },
            "type": "object"
          },
          "sections": {
            "items": {
              "properties": {
                "description": {
                  "maxLength": 256,
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "name": {
                  "maxLength": 100,
                  "type": "string",
                  "description": "Should not start with a number"
                },
                "is_repeatable": {
                  "type": "boolean",
                  "default": false
                },
                "questions": {
                  "example": [
                    "questionId1",
                    "questionId2",
                    "facilityLookupQuestionId",
                    "lookupQuestionId",
                    "deviceQuestion",
                    "measurementTimeQuestion"
                  ],
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "description",
                "id",
                "name",
                "questions"
              ]
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "FormSchemaInput": {
        "properties": {
          "config": {
            "$ref": "#/components/schemas/FormSchemaConfig"
          },
          "description": {
            "maxLength": 1024,
            "type": "string"
          },
          "form_submission_editable": {
            "type": "boolean"
          },
          "form_category_id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/FormSchemaStatus"
          },
          "form_submission_default_status": {
            "$ref": "#/components/schemas/FormSubmissionStatus"
          }
        },
        "type": "object"
      },
      "FormSchemaQuestionConditions": {
        "description": "configure the conditional question for current question. The syntax will take inspiration from existing filtering object.",
        "example": {
          "questionId1": {
            "$gt": 5
          }
        },
        "type": "object"
      },
      "FormSchemaQuestionDefaultSourcingAnswer": {
        "type": "object",
        "properties": {
          "lookup_question_id": {
            "type": "string"
          },
          "lookup_attribute": {
            "type": "string"
          }
        }
      },
      "FormSchemaQuestionDefaultAnswer": {
        "description": "default answer to this question. For reference only, the actual answer still needs to be submitted with the form submission.",
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          {
            "$ref": "#/components/schemas/FormSchemaQuestionDefaultSourcingAnswer"
          }
        ],
        "example": 123
      },
      "FormSchemaMeasurement": {
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string"
          },
          "source_lookup_question_id": {
            "type": "string"
          },
          "subject_lookup_question_id": {
            "type": "string"
          },
          "is_required": {
            "example": false,
            "type": "boolean"
          },
          "measurement_type": {
            "type": "string",
            "example": "volume"
          },
          "measurement_unit": {
            "type": "string",
            "example": "bbl"
          },
          "prompt": {
            "maxLength": 100,
            "type": "string"
          },
          "type": {
            "enum": [
              "measurement"
            ],
            "type": "string"
          },
          "conditions": {
            "$ref": "#/components/schemas/FormSchemaQuestionConditions"
          },
          "default_answer": {
            "$ref": "#/components/schemas/FormSchemaQuestionDefaultAnswer"
          },
          "equation": {
            "type": "string",
            "description": "An equation that contains any valid combination of arithmetic operations (+,-,*,/,^,(,)), numeric/date question references, measurement references or decimal numbers",
            "example": "(measurement_duration*measurement_vent_rate)*number_question/2.3"
          },
          "minimum": {
            "type": "number",
            "description": "specify a minimum value for an answer. Applies to number, integer, and measurement question types."
          },
          "maximum": {
            "type": "number",
            "description": "specify a maximum value for an answer. Applies to number, integer, and measurement question types."
          }
        },
        "required": [
          "description",
          "is_required",
          "measurement_type",
          "measurement_unit",
          "prompt",
          "type"
        ],
        "type": "object"
      },
      "FormSchemaQuestion": {
        "properties": {
          "data_type": {
            "$ref": "#/components/schemas/AttributeTypes"
          },
          "description": {
            "maxLength": 256,
            "type": "string"
          },
          "is_required": {
            "example": false,
            "type": "boolean"
          },
          "lookup_entity_type": {
            "$ref": "#/components/schemas/MeasurementSubjectEntityType"
          },
          "lookup_entity_attribute": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "ghgrp_id"
            }
          },
          "pick_list_values": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "prompt": {
            "maxLength": 100,
            "type": "string"
          },
          "type": {
            "enum": [
              "question"
            ],
            "type": "string"
          },
          "parent_facility_question_id": {
            "description": "the facility look up question id that will be used to limit the available options for device and equipment look up questions to the devices/equipment associated to that facility.",
            "type": "string"
          },
          "filter": {
            "$ref": "#/components/schemas/FormLookupQuestionFilterFields"
          },
          "conditions": {
            "$ref": "#/components/schemas/FormSchemaQuestionConditions"
          },
          "default_answer": {
            "$ref": "#/components/schemas/FormSchemaQuestionDefaultAnswer"
          },
          "minimum": {
            "type": "number",
            "description": "specify a minimum value for an answer. Applies to number, integer, and measurement question types."
          },
          "maximum": {
            "type": "number",
            "description": "specify a maximum value for an answer. Applies to number, integer, and measurement question types."
          },
          "min_length": {
            "type": "number",
            "description": "specify a minimum length for an answer. Applies to string question types."
          },
          "max_length": {
            "type": "number",
            "description": "specify a maximum length for an answer. Applies to string question types."
          },
          "is_long_string": {
            "type": "boolean",
            "description": "specify if the string question is a multiline string. Applies to string question types."
          },
          "before": {
            "type": "string",
            "description": "specify a maximum date for an answer. Applies to date/datetime question types. Accept date in string and \"$now\"",
            "example": "$now"
          },
          "after": {
            "type": "string",
            "description": "specify a maximum date for an answer. Applies to date/datetime question types. Accept date in string and \"$now\"",
            "example": "2024-12-01"
          }
        },
        "required": [
          "data_type",
          "description",
          "is_required",
          "prompt",
          "type"
        ],
        "type": "object"
      },
      "FormSchemaWithCategory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FormSchema"
          },
          {
            "properties": {
              "form_category": {
                "$ref": "#/components/schemas/FormCategory"
              }
            }
          }
        ]
      },
      "FormSchemaSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "created_at",
              "name"
            ],
            "default": "name",
            "description": "The sort key for form schema",
            "type": "string"
          },
          "sort_direction": {
            "default": "asc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "asc",
            "type": "string"
          }
        }
      },
      "FormSchemaFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Form Schemas where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/FormSchemaStatus"
              },
              "version": {
                "type": "string"
              },
              "form_category.id": {
                "type": "string",
                "example": {
                  "$in": [
                    "748970de-fd1f-4494-ae3f-47cc21ff205f"
                  ]
                }
              },
              "form_category.name": {
                "type": "string",
                "example": "test"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            },
            "type": "object"
          }
        }
      },
      "FormSubmissionWithoutAnswers": {
        "properties": {
          "company_id": {
            "format": "uuid",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "form_schema_id": {
            "format": "uuid",
            "type": "string"
          },
          "form_schema_version": {
            "type": "number"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/FormSubmissionStatus"
          }
        },
        "type": "object"
      },
      "FormSubmissionWithPivotAnswers": {
        "properties": {
          "company_id": {
            "format": "uuid",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "form_schema_id": {
            "format": "uuid",
            "type": "string"
          },
          "form_schema_version": {
            "type": "number"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/FormSubmissionStatus"
          },
          "submissionId:questionId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FormSubmissionWithFormSchemaName": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FormSubmissionWithoutAnswers"
          },
          {
            "properties": {
              "form_schema": {
                "properties": {
                  "id": {
                    "format": "uuid",
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "form_category": {
                    "nullable": true,
                    "properties": {
                      "id": {
                        "format": "uuid",
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "FormSubmissionWithAnswers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FormSubmissionWithoutAnswers"
          },
          {
            "$ref": "#/components/schemas/FormSubmissionAnswers"
          },
          {
            "properties": {
              "form_schema": {
                "$ref": "#/components/schemas/FormSchema"
              }
            }
          }
        ]
      },
      "FormSubmissionAnswer": {
        "properties": {
          "value": {
            "$ref": "#/components/schemas/FormSubmissionValue"
          }
        },
        "type": "object"
      },
      "FormSubmissionValue": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          }
        ],
        "example": 123
      },
      "FormSubmissionAnswers": {
        "properties": {
          "answers": {
            "additionalProperties": {
              "$ref": "#/components/schemas/FormSubmissionSection"
            },
            "example": {
              "section1": [
                {
                  "questionId1": {
                    "value": 23.5
                  },
                  "questionId2": {
                    "value": "Yes it is working fine"
                  },
                  "lookupQuestionId": {
                    "value": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                  },
                  "deviceQuestion": {
                    "value": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                  },
                  "measurementTimeQuestion": {
                    "value": "2023-01-01T12:12:12.000Z"
                  }
                },
                {
                  "questionId1": {
                    "value": 237.4
                  },
                  "questionId2": {
                    "value": "No, it is reporting a value way too hot"
                  },
                  "measurementTimeQuestion": {
                    "value": "2023-01-02T12:12:12.000Z"
                  },
                  "fileUploadQuestion": {
                    "value": {
                      "ref": "2f2801da-713b-41c3-b0be-5c745d9c48c8",
                      "name": "report.csv"
                    }
                  },
                  "dateQuestion": {
                    "value": "2023-01-02"
                  },
                  "dateTimeQuestion": {
                    "value": "2023-01-02T12:12:12.000Z"
                  }
                }
              ],
              "section2": [
                {
                  "question2": {
                    "value": "section 2 questions go here"
                  }
                }
              ]
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "FormSubmissionUpdate": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/FormSubmissionStatus"
          }
        },
        "type": "object"
      },
      "FormSubmissionInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FormSubmissionAnswers"
          },
          {
            "properties": {
              "form_schema_id": {
                "format": "uuid",
                "type": "string"
              },
              "form_schema_version": {
                "type": "integer"
              },
              "status": {
                "$ref": "#/components/schemas/FormSubmissionStatus"
              },
              "event_id": {
                "description": "the event id that this form will be associated with",
                "format": "uuid",
                "type": "string"
              },
              "workflow_task_id": {
                "description": "the workflow task id that this form will be associated with",
                "format": "uuid",
                "type": "string"
              }
            },
            "required": [
              "answers",
              "form_schema_id"
            ],
            "type": "object"
          }
        ]
      },
      "FormSubmissionEditInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FormSubmissionAnswers"
          },
          {
            "properties": {
              "status": {
                "$ref": "#/components/schemas/FormSubmissionStatus"
              },
              "event_id": {
                "description": "the event id that this form will be associated with",
                "format": "uuid",
                "type": "string"
              },
              "workflow_task_id": {
                "description": "the workflow task id that this form will be associated with",
                "format": "uuid",
                "type": "string"
              },
              "retrigger_workflow": {
                "description": "whether the edited form submission should retrigger associated worfklows",
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "answers"
            ],
            "type": "object"
          }
        ]
      },
      "FormLookupQuestionFilterFields": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/FacilityFilterFields"
          },
          {
            "$ref": "#/components/schemas/EquipmentFilterFields"
          },
          {
            "$ref": "#/components/schemas/DeviceFilterFields"
          }
        ]
      },
      "FormSubmissionSection": {
        "items": {
          "$ref": "#/components/schemas/FormSubmissionSectionAnswer"
        },
        "type": "array"
      },
      "FormSubmissionSectionAnswer": {
        "additionalProperties": {
          "$ref": "#/components/schemas/FormSubmissionAnswer"
        },
        "type": "object"
      },
      "FormSubmissionAnswerSort": {
        "type": "object",
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "status",
              "created_by",
              "created_at",
              "updated_at",
              "sectionId:questionId"
            ],
            "default": "created_at",
            "type": "string"
          },
          "sort_direction": {
            "default": "asc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "asc",
            "type": "string"
          }
        }
      },
      "FormSubmissionAnswerFilter": {
        "type": "object",
        "properties": {
          "filter": {
            "description": "A filter object for Form Submissions where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "version": {
                "type": "integer"
              },
              "current_version": {
                "type": "boolean"
              },
              "status": {
                "type": "string",
                "$ref": "#/components/schemas/FormSubmissionStatus"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              },
              "sectionId:questionId": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              }
            }
          }
        }
      },
      "FormSubmissionSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "created_at",
              "status",
              "answer"
            ],
            "default": "created_at",
            "type": "string"
          },
          "sort_direction": {
            "default": "asc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "asc",
            "type": "string"
          }
        }
      },
      "FormSubmissionFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Form Submissions where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "version": {
                "type": "integer"
              },
              "current_version": {
                "type": "boolean"
              },
              "status": {
                "type": "string",
                "$ref": "#/components/schemas/FormSubmissionStatus"
              },
              "form_category_id": {
                "type": "string",
                "example": {
                  "$in": [
                    "748970de-fd1f-4494-ae3f-47cc21ff205f"
                  ]
                }
              },
              "form_category.name": {
                "type": "string",
                "example": "test"
              },
              "form_schema.id": {
                "type": "string",
                "example": {
                  "$in": [
                    "748970de-fd1f-4494-ae3f-47cc21ff205f"
                  ]
                }
              },
              "form_schema.name": {
                "type": "string"
              },
              "form_schema.version": {
                "type": "number"
              },
              "form_schema.current_version": {
                "type": "boolean"
              },
              "form_schema.status": {
                "type": "string",
                "$ref": "#/components/schemas/FormSchemaStatus"
              },
              "related_entity_id": {
                "type": "string",
                "format": "uuid"
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "event.id": {
                "type": "string",
                "format": "uuid"
              },
              "measurement.measurement_type": {
                "type": "string"
              },
              "measurement.measurement_unit": {
                "type": "string"
              },
              "measurement.source_id": {
                "type": "string",
                "format": "uuid"
              },
              "measurement.subject_id": {
                "type": "string",
                "format": "uuid"
              },
              "measurement.form_submission_id": {
                "type": "string",
                "format": "uuid"
              },
              "measurement.section_id": {
                "type": "string"
              },
              "measurement.question_id": {
                "type": "string"
              },
              "measurement.question_index": {
                "type": "number"
              },
              "measurement.time": {
                "type": "string",
                "format": "date-time"
              }
            },
            "type": "object"
          }
        }
      },
      "EnumIdNamePairList": {
        "type": "array",
        "items": {
          "properties": {
            "id": {
              "type": "string",
              "description": "enum value"
            },
            "name": {
              "type": "string",
              "description": "display name"
            }
          }
        }
      },
      "CodeNamePair": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "Latitude": {
        "description": "latitude on the Earth",
        "example": 51,
        "maximum": 90,
        "minimum": -90,
        "nullable": true,
        "type": "number"
      },
      "Longitude": {
        "description": "longitude on the Earth",
        "example": -114,
        "maximum": 180,
        "minimum": -180,
        "nullable": true,
        "type": "number"
      },
      "LedgerEntryUpdate": {
        "properties": {
          "holding": {
            "type": "boolean"
          },
          "serial_number_prefix": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "LedgerEntryCreate": {
        "properties": {
          "owner_id": {
            "type": "string",
            "format": "uuid"
          },
          "project_group_id": {
            "type": "string",
            "format": "uuid"
          },
          "vintage": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/LedgerEntryStatus"
          },
          "range_start": {
            "type": "integer"
          },
          "range_end": {
            "type": "integer"
          },
          "holding": {
            "type": "boolean"
          },
          "serial_number_prefix": {
            "type": "string"
          }
        },
        "required": [
          "owner_id",
          "project_group_id",
          "vintage",
          "status",
          "range_start",
          "range_end",
          "holding"
        ],
        "type": "object"
      },
      "LedgerEntryPublic": {
        "properties": {
          "owner_name": {
            "type": "string"
          },
          "vintage": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/LedgerEntryStatus"
          },
          "range_start": {
            "type": "integer"
          },
          "range_end": {
            "type": "integer"
          },
          "holding": {
            "type": "boolean"
          },
          "serial_number_prefix": {
            "type": "string"
          },
          "serial_number_range": {
            "type": "string"
          },
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "type": "object"
      },
      "LedgerEntry": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LedgerEntryCreate"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "serial_number_range": {
                "type": "string"
              },
              "credit_owner": {
                "$ref": "#/components/schemas/CreditOwner"
              },
              "project_group": {
                "$ref": "#/components/schemas/ProjectGroup"
              }
            }
          }
        ],
        "type": "object"
      },
      "LedgerEntrySort": {
        "properties": {
          "sort_by": {
            "enum": [
              "owner_id",
              "project_group_id",
              "vintage",
              "status",
              "holding"
            ],
            "example": "holding",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LedgerEntryFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Ledger Entries where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "holding": true,
              "visibility": "public"
            },
            "properties": {
              "owner_id": {
                "type": "string",
                "format": "uuid"
              },
              "project_group_id": {
                "type": "string",
                "format": "uuid"
              },
              "vintage": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "holding": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "LedgerEntryPublicSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "owner_name",
              "project_group_id",
              "vintage",
              "status",
              "holding",
              "range_start",
              "range_end"
            ],
            "example": "range_start",
            "type": "string"
          },
          "sort_direction": {
            "default": "asc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "asc",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LedgerEntryPublicFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Ledger Entries where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "owner_name": "Validere",
              "project_group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
            },
            "properties": {
              "owner_name": {
                "type": "string"
              },
              "project_group_id": {
                "type": "string",
                "format": "uuid"
              },
              "vintage": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "holding": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "ProjectGroupSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "status",
              "project_developer",
              "protocol",
              "country"
            ],
            "example": "start_date",
            "type": "string"
          },
          "sort_direction": {
            "default": "asc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "asc",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProjectGroupFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Project Groups where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "name": "Basin"
            },
            "properties": {
              "name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/ProjectGroupStatus"
              },
              "project_developer": {
                "type": "string"
              },
              "protocol": {
                "type": "string"
              },
              "country": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "CreditOwnerSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "public_name",
              "visibility"
            ],
            "example": "public_name",
            "type": "string"
          },
          "sort_direction": {
            "default": "asc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "asc",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CreditOwnerFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Credit Owners where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "name": "Validere"
            },
            "properties": {
              "name": {
                "type": "string"
              },
              "public_name": {
                "type": "string"
              },
              "visibility": {
                "type": "string"
              },
              "buffer_holder": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "ProjectGroupPublicSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "status",
              "project_developer",
              "protocol",
              "country"
            ],
            "example": "start_date",
            "type": "string"
          },
          "sort_direction": {
            "default": "asc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "asc",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProjectGroupPublicFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Project Groups where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "name": "Basin"
            },
            "properties": {
              "name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/ProjectGroupStatus"
              },
              "project_developer": {
                "type": "string"
              },
              "protocol": {
                "type": "string"
              },
              "country": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "ProjectGroupCreateUpdate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "status": {
            "$ref": "#/components/schemas/ProjectGroupStatus"
          },
          "project_developer": {
            "type": "string",
            "maxLength": 256
          },
          "start_date": {
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "type": "string",
            "format": "date"
          },
          "protocol": {
            "type": "string",
            "maxLength": 256
          },
          "country": {
            "type": "string",
            "maxLength": 256
          }
        },
        "type": "object"
      },
      "ProjectGroupPublic": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProjectGroupCreateUpdate"
          },
          {
            "properties": {
              "id": {
                "format": "uuid",
                "type": "string"
              }
            }
          }
        ]
      },
      "ProjectGroupSummary": {
        "properties": {
          "summary": {
            "properties": {
              "project_periods": {
                "type": "number"
              },
              "total_active_credits": {
                "type": "number"
              },
              "total_retired_credits": {
                "type": "number"
              },
              "buffer_credits": {
                "type": "number"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "ProjectGroup": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProjectGroupCreateUpdate"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "id": {
                "format": "uuid",
                "type": "string"
              }
            }
          }
        ]
      },
      "CreditOwnerCreateUpdate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "visibility": {
            "$ref": "#/components/schemas/CreditOwnerVisibility"
          },
          "buffer_holder": {
            "type": "boolean",
            "default": false
          }
        },
        "type": "object"
      },
      "CreditOwner": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CreditOwnerCreateUpdate"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "public_name": {
                "type": "string"
              }
            }
          }
        ]
      },
      "MeasurementSeriesFilter": {
        "type": "object",
        "properties": {
          "filter": {
            "description": "A filter object for measurement series where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "properties": {
              "device_id": {
                "type": "string",
                "format": "uuid"
              },
              "description": {
                "type": "string"
              },
              "measurement_type": {
                "type": "string"
              },
              "measurement_unit": {
                "type": "string"
              },
              "measurement_subject_id": {
                "type": "string",
                "format": "uuid"
              },
              "device.custom_attributes": {
                "type": "object"
              },
              "device.name": {
                "type": "string"
              },
              "device.type_id": {
                "type": "string"
              },
              "device.status": {
                "type": "string"
              },
              "device.facility.custom_attributes": {
                "type": "object"
              },
              "device.facility.id": {
                "type": "string"
              },
              "device.facility.name": {
                "type": "string"
              },
              "device.facility.status": {
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "Measurement": {
        "properties": {
          "measurement_type": {
            "type": "string",
            "example": "volume"
          },
          "measurement_unit": {
            "type": "string",
            "example": "bbl"
          },
          "records": {
            "items": {
              "$ref": "#/components/schemas/MeasurementInputRecord"
            },
            "type": "array"
          }
        },
        "required": [
          "records",
          "measurement_type",
          "measurement_unit"
        ],
        "type": "object"
      },
      "MeasurementInputRecord": {
        "properties": {
          "timestamp": {
            "format": "date-time",
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        },
        "required": [
          "timestamp",
          "value"
        ],
        "type": "object"
      },
      "MeasurementList": {
        "items": {
          "$ref": "#/components/schemas/MeasurementOutput"
        },
        "type": "array"
      },
      "MeasurementOutputLean": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "measure_value": {
            "example": 456,
            "type": "number"
          },
          "time": {
            "format": "date-time",
            "type": "string"
          },
          "form_submission_id": {
            "type": "string",
            "format": "uuid"
          },
          "form_submission_status": {
            "$ref": "#/components/schemas/FormSubmissionStatus"
          },
          "form_schema": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "form_category": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              }
            }
          }
        },
        "type": "object"
      },
      "MeasurementOutput": {
        "properties": {
          "measure_name": {
            "example": "methane_concentration",
            "type": "string"
          },
          "measure_value": {
            "example": 456,
            "type": "number"
          },
          "msid": {
            "description": "Measurement series Id",
            "format": "uuid",
            "type": "string"
          },
          "time": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MeasurementSeries": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeasurementSeriesCreateInput"
          },
          {
            "properties": {
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "id": {
                "format": "uuid",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "MeasurementSeriesCreateInput": {
        "properties": {
          "description": {
            "type": "string"
          },
          "device_id": {
            "format": "uuid",
            "type": "string"
          },
          "measurement_type": {
            "type": "string",
            "example": "volume"
          },
          "unit": {
            "type": "string",
            "example": "bbl"
          }
        },
        "type": "object"
      },
      "MeasurementSeriesDevice": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Device"
          },
          {
            "properties": {
              "facility_name": {
                "example": "Facility Name",
                "type": "string"
              }
            }
          }
        ]
      },
      "MeasurementSeriesSubjectInput": {
        "properties": {
          "subjects": {
            "items": {
              "properties": {
                "entity_id": {
                  "format": "uuid",
                  "type": "string"
                },
                "entity_type": {
                  "$ref": "#/components/schemas/MeasurementSubjectEntityType"
                },
                "start_time": {
                  "format": "date-time"
                }
              }
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "MeasurementTypeV2": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "quantity": {
            "type": "string"
          },
          "default_unit": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "MeasurementType": {
        "properties": {
          "data_type": {
            "$ref": "#/components/schemas/MeasurementTypeDataType"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "units": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "MeasurementTypeDataType": {
        "type": "string",
        "enum": [
          "int",
          "float"
        ]
      },
      "MeasurementTypeList": {
        "items": {
          "$ref": "#/components/schemas/MeasurementType"
        },
        "type": "array"
      },
      "MeasurementQuantityList": {
        "items": {
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": "array"
      },
      "MeasurementTypeUnitConfig": {
        "properties": {
          "name": {
            "properties": {
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "symbol": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "to_anchor": {
            "type": "number"
          },
          "anchor_shift": {
            "type": "number"
          },
          "quantity": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "NetworkFlowList": {
        "items": {
          "$ref": "#/components/schemas/NetworkFlow"
        }
      },
      "NetworkFlow": {
        "allOf": [
          {
            "properties": {
              "adjustable": {
                "type": "boolean"
              },
              "proratable": {
                "description": "If the entry is able to be adjustable",
                "type": "boolean"
              },
              "volume": {
                "type": "number"
              },
              "volume_unit": {
                "type": "string"
              },
              "adjusted_volume": {
                "type": "number"
              },
              "volume_record_id": {
                "type": "string",
                "format": "uuid"
              },
              "volume_estimation_method_id": {
                "type": "string",
                "format": "uuid"
              },
              "volume_source_type": {
                "type": "string",
                "enum": [
                  "record",
                  "estimation_method"
                ]
              },
              "id": {
                "description": "flow_id",
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "$ref": "#/components/schemas/FlowBasic"
          }
        ]
      },
      "NetworkInput": {
        "properties": {
          "input": {
            "type": "object",
            "description": "flow_id map",
            "example": {
              "3fa85f64-5717-4562-b3fc-2c963f66afa6": {
                "adjustable": true
              }
            },
            "additionalProperties": {
              "type": "object",
              "properties": {
                "adjustable": {
                  "type": "boolean"
                }
              }
            }
          },
          "reporting_group_id": {
            "type": "string"
          }
        }
      },
      "NetworkRunPromote": {
        "properties": {
          "promote_to_record": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "OverwriteAllValues": {
        "properties": {
          "overwrite_all_values": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "PagedAggregatedCalculatorResults": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "$ref": "#/components/schemas/AggregatedCalculatorResults"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedCustomAttributeDefinitionList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/CustomAttributeDefinition"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedActivityList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/Activity"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedAssetGroupWithAssetsList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/AssetGroupWithAssets"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedCalculatorResultFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/CalculatorResultFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedUnitConfigFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/UnitConfigFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedDeviceFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/DeviceFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedEventFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/EventFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedWorkflowTaskFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/WorkflowTaskFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedFormSubmissionFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/FormSubmissionFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedFlowFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/FlowFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedInputRecordResults": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "$ref": "#/components/schemas/InputRecordResults"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedAggregatedRecordValues": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "$ref": "#/components/schemas/AggregatedRecordValuesResults"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedRecordFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/RecordFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedDefaultRecordValueConfigurationsList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/DefaultRecordValueConfiguration"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedDeviceList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/Device"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedEquipmentFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/EquipmentFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedEquipmentList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/EquipmentWithFacility"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedEstimationMethodList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/EstimationMethodSearchResponse"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedEstimationMethodWithConfigurationList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/EstimationMethodWithRenamedStatusResponse"
                    },
                    {
                      "properties": {
                        "facility_id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "facility_name": {
                          "type": "string"
                        },
                        "entity_name": {
                          "type": "string"
                        },
                        "entity_type_type": {
                          "type": "string",
                          "description": "eg. equipment type or facility type"
                        },
                        "status": {
                          "$ref": "#/components/schemas/CalculationStatus"
                        },
                        "calculator_configuration": {
                          "$ref": "#/components/schemas/EstimationMethodConfiguration"
                        },
                        "calculator_run": {
                          "$ref": "#/components/schemas/CalculatorRunResponse"
                        },
                        "reporting_groups": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ReportingGroupInput"
                          }
                        }
                      }
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedFacilityFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/FacilityFilterOutput"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedFacilityList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "$ref": "#/components/schemas/FacilityList"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedAssetList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "asset_type": {
                    "$ref": "#/components/schemas/AssetType"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "PagedFormSchemaList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/FormSchemaWithCategory"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedFormSubmissionList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/FormSubmissionWithoutAnswers"
                    },
                    {
                      "$ref": "#/components/schemas/FormSubmissionWithAnswers"
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedFormSubmissionAnswerList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/FormSubmissionWithPivotAnswers"
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "MeasurementPlot": {
        "properties": {
          "form": {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/MeasurementOutputLean"
              }
            }
          },
          "series": {
            "type": "array",
            "items": {
              "properties": {
                "measurement_series_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": {
                  "type": "string"
                },
                "data": {
                  "$ref": "#/components/schemas/MeasurementOutputLean"
                }
              },
              "type": "object"
            }
          }
        },
        "type": "object"
      },
      "PagedMeasurementList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "$ref": "#/components/schemas/MeasurementList"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedMeasurementSeries": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/MeasurementSeries"
                    },
                    {
                      "properties": {
                        "device": {
                          "$ref": "#/components/schemas/MeasurementSeriesDevice"
                        },
                        "device_name": {
                          "type": "string"
                        },
                        "measurement_type_name": {
                          "example": "Wind Variation",
                          "type": "string"
                        }
                      }
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedNetworkList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "$ref": "#/components/schemas/NetworkFlowList"
              },
              "reporting_group_id": {
                "type": "string"
              }
            },
            "type": "object"
          }
        ]
      },
      "Paginated": {
        "properties": {
          "page": {
            "default": 0,
            "description": "Which page to return",
            "example": 0,
            "type": "number"
          },
          "page_size": {
            "default": 10,
            "description": "How many items to list in a page",
            "example": 20,
            "type": "number"
          }
        }
      },
      "Pagination": {
        "properties": {
          "page_number": {
            "type": "number",
            "example": 0
          },
          "page_size": {
            "type": "number",
            "example": 10
          },
          "total_entries": {
            "type": "number",
            "example": 58
          },
          "total_pages": {
            "type": "number",
            "example": 6
          }
        },
        "type": "object"
      },
      "RejectedRecord": {
        "properties": {
          "ExistingVersion": {
            "type": "integer"
          },
          "Reason": {
            "type": "string"
          },
          "RecordIndex": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "XLSXResponse": {
        "format": "binary",
        "type": "string"
      },
      "FlowBasic": {
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/FlowTypes"
          },
          "status": {
            "$ref": "#/components/schemas/FlowStatus"
          },
          "product_category": {
            "$ref": "#/components/schemas/ProductCategories"
          },
          "product_type": {
            "$ref": "#/components/schemas/ProductTypes"
          },
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          }
        },
        "type": "object"
      },
      "FlowFacilityConnections": {
        "properties": {
          "upstream_facility_id": {
            "type": "string",
            "format": "uuid"
          },
          "downstream_facility_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "type": "object"
      },
      "FlowFacilityConnectionDetails": {
        "properties": {
          "upstream_facility": {
            "$ref": "#/components/schemas/Facility"
          },
          "downstream_facility": {
            "$ref": "#/components/schemas/Facility"
          }
        },
        "type": "object"
      },
      "FlowEquipmentConnections": {
        "properties": {
          "upstream_equipment_id": {
            "type": "string",
            "format": "uuid"
          },
          "downstream_equipment_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "type": "object"
      },
      "FlowEquipmentConnectionDetails": {
        "properties": {
          "upstream_equipment": {
            "$ref": "#/components/schemas/EquipmentBasic"
          },
          "downstream_equipment": {
            "$ref": "#/components/schemas/EquipmentBasic"
          }
        },
        "type": "object"
      },
      "FlowAssociatedFacilityDetails": {
        "properties": {
          "associated_facility": {
            "$ref": "#/components/schemas/Facility"
          }
        }
      },
      "FlowAssociatedEquipmentDetails": {
        "properties": {
          "associated_equipment": {
            "$ref": "#/components/schemas/EquipmentBasic"
          }
        },
        "type": "object"
      },
      "FlowFlowConnections": {
        "properties": {
          "upstream_flow_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "downstream_flow_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "upstream_flows_count": {
            "type": "integer"
          },
          "downstream_flows_count": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "FlowFlowConnectionsV2": {
        "properties": {
          "upstream_flows_count": {
            "type": "integer"
          },
          "downstream_flows_count": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "FlowFlowConnectionDetails": {
        "properties": {
          "upstream_flows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flow"
            }
          },
          "downstream_flows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flow"
            }
          }
        },
        "type": "object"
      },
      "FlowUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FlowBasic"
          },
          {
            "properties": {
              "associated_facility_id": {
                "type": "string",
                "format": "uuid"
              },
              "associated_equipment_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "$ref": "#/components/schemas/FlowFlowConnections"
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlowFacilityConnections"
              },
              {
                "$ref": "#/components/schemas/FlowEquipmentConnections"
              }
            ]
          },
          {
            "$ref": "#/components/schemas/AssetAttributeStartEndDateInput"
          }
        ]
      },
      "FlowCreateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FlowUpdateInput"
          },
          {
            "properties": {
              "associated_facility_filter": {
                "$ref": "#/components/schemas/FacilityFilterFields"
              },
              "upstream_facility_filter": {
                "$ref": "#/components/schemas/FacilityFilterFields"
              },
              "downstream_facility_filter": {
                "$ref": "#/components/schemas/FacilityFilterFields"
              },
              "associated_equipment_filter": {
                "$ref": "#/components/schemas/EquipmentFilterFields"
              },
              "upstream_equipment_filter": {
                "$ref": "#/components/schemas/EquipmentFilterFields"
              },
              "downstream_equipment_filter": {
                "$ref": "#/components/schemas/EquipmentFilterFields"
              }
            }
          }
        ]
      },
      "Flow": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FlowBasic"
          },
          {
            "$ref": "#/components/schemas/FlowFlowConnections"
          },
          {
            "$ref": "#/components/schemas/FlowFacilityConnections"
          },
          {
            "$ref": "#/components/schemas/FlowEquipmentConnections"
          },
          {
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "associated_facility_id": {
                "type": "string",
                "format": "uuid"
              },
              "associated_equipment_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "$ref": "#/components/schemas/AuditFields",
            "type": "object"
          }
        ]
      },
      "FlowV2": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FlowBasic"
          },
          {
            "$ref": "#/components/schemas/FlowFlowConnectionsV2"
          },
          {
            "$ref": "#/components/schemas/FlowFacilityConnections"
          },
          {
            "$ref": "#/components/schemas/FlowEquipmentConnections"
          },
          {
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "associated_facility_id": {
                "type": "string",
                "format": "uuid"
              },
              "associated_equipment_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "$ref": "#/components/schemas/AuditFields",
            "type": "object"
          }
        ]
      },
      "FlowWithConnections": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flow"
          },
          {
            "$ref": "#/components/schemas/FlowFlowConnectionDetails"
          },
          {
            "oneOf": [
              {
                "$ref": "#/components/schemas/FlowEquipmentConnectionDetails"
              },
              {
                "$ref": "#/components/schemas/FlowFacilityConnectionDetails"
              },
              {
                "$ref": "#/components/schemas/FlowAssociatedEquipmentDetails"
              },
              {
                "$ref": "#/components/schemas/FlowAssociatedFacilityDetails"
              }
            ]
          }
        ]
      },
      "FlowSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "status",
              "product_category",
              "product_type",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "FlowPrimaryFilterFieldsWithPrefix": {
        "properties": {
          "flow.id": {
            "type": "string"
          },
          "flow.name": {
            "type": "string"
          },
          "flow.status": {
            "$ref": "#/components/schemas/FlowStatus"
          },
          "flow.type": {
            "$ref": "#/components/schemas/FlowTypes"
          },
          "flow.product_type": {
            "$ref": "#/components/schemas/ProductTypes"
          },
          "flow.product_category": {
            "$ref": "#/components/schemas/ProductCategories"
          },
          "flow.custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          },
          "flow.associated_facility_id": {
            "type": "string",
            "format": "uuid"
          },
          "flow.associated_equipment_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "type": "object"
      },
      "FlowFilterFields": {
        "example": {
          "$or": [
            {
              "type": "fuel",
              "product_type": "natural_gas",
              "product_category": "natural_gas"
            },
            {
              "name": {
                "$like": "test"
              }
            }
          ]
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/FlowTypes"
          },
          "status": {
            "$ref": "#/components/schemas/FlowStatus"
          },
          "product_type": {
            "$ref": "#/components/schemas/ProductTypes"
          },
          "product_category": {
            "$ref": "#/components/schemas/ProductCategories"
          },
          "custom_attributes": {
            "$ref": "#/components/schemas/CustomAttributes"
          },
          "associated_facility_id": {
            "type": "string",
            "format": "uuid"
          },
          "associated_equipment_id": {
            "type": "string",
            "format": "uuid"
          },
          "upstream_facility_id": {
            "type": "string",
            "format": "uuid"
          },
          "upstream_equipment_id": {
            "type": "string",
            "format": "uuid"
          },
          "downstream_facility_id": {
            "type": "string",
            "format": "uuid"
          },
          "downstream_equipment_id": {
            "type": "string",
            "format": "uuid"
          },
          "event.id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "upstream_flows.id": {
            "type": "string",
            "format": "uuid"
          },
          "downstream_flows.id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "type": "object"
      },
      "FlowFilter": {
        "properties": {
          "filter": {
            "$ref": "#/components/schemas/FlowFilterFields"
          }
        },
        "type": "object"
      },
      "PagedFlowsList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Flow"
                    },
                    {
                      "$ref": "#/components/schemas/FlowFlowConnectionDetails"
                    },
                    {
                      "$ref": "#/components/schemas/FlowEquipmentConnectionDetails"
                    },
                    {
                      "$ref": "#/components/schemas/FlowFacilityConnectionDetails"
                    },
                    {
                      "$ref": "#/components/schemas/FlowAssociatedEquipmentDetails"
                    },
                    {
                      "$ref": "#/components/schemas/FlowAssociatedFacilityDetails"
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedFlowsListV2": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FlowV2"
                    },
                    {
                      "$ref": "#/components/schemas/FlowEquipmentConnectionDetails"
                    },
                    {
                      "$ref": "#/components/schemas/FlowFacilityConnectionDetails"
                    },
                    {
                      "$ref": "#/components/schemas/FlowAssociatedEquipmentDetails"
                    },
                    {
                      "$ref": "#/components/schemas/FlowAssociatedFacilityDetails"
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "ReportingGroupUpdateInput": {
        "properties": {
          "name": {
            "type": "string",
            "example": "SubpartW"
          },
          "description": {
            "type": "string",
            "example": "my reporting group"
          },
          "priority": {
            "type": "number",
            "description": "default to 1",
            "example": 2
          }
        }
      },
      "ReportingGroupInput": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ReportingGroupUpdateInput"
          },
          {
            "properties": {
              "id": {
                "type": "string",
                "example": "subpartw"
              }
            }
          }
        ]
      },
      "ReportingGroup": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ReportingGroupInput"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "company_id": {
                "format": "uuid",
                "type": "string"
              }
            },
            "type": "object"
          }
        ]
      },
      "ReportWithS3Url": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ReportWithTemplatedReportResponse"
          },
          {
            "properties": {
              "s3_download_link": {
                "type": "string"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedReportList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportResponse"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "ReportSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "display_name",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "ReportFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Reports where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "$or": [
                {
                  "created_by": "c3e9446d-4cc0-4e7b-bb43-43fff9361957"
                },
                {
                  "name": {
                    "$like": "Subpart W"
                  }
                }
              ]
            },
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "templated_report_name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/TemplatedReportStatus"
              },
              "created_at": {
                "type": "string"
              },
              "created_by": {
                "type": "string"
              },
              "updated_at": {
                "type": "string"
              },
              "updated_by": {
                "type": "string"
              },
              "templated_report.display_name": {
                "type": "string"
              },
              "templated_report.status": {
                "$ref": "#/components/schemas/TemplatedReportStatus"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "ReportFilterV2": {
        "properties": {
          "filter": {
            "description": "A filter object for V2 Reports where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "templated_report_name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/TemplatedReportStatus"
              },
              "created_at": {
                "type": "string"
              },
              "created_by": {
                "type": "string"
              },
              "updated_at": {
                "type": "string"
              },
              "updated_by": {
                "type": "string"
              },
              "templated_report.name": {
                "type": "string"
              },
              "templated_report.display_name": {
                "type": "string"
              },
              "templated_report.status": {
                "$ref": "#/components/schemas/TemplatedReportStatus"
              },
              "templated_report.created_at": {
                "format": "date-time",
                "type": "string"
              },
              "templated_report.updated_at": {
                "format": "date-time",
                "type": "string"
              },
              "latest_version.input": {
                "type": "object"
              },
              "latest_version.status": {
                "type": "string"
              },
              "latest_version.created_at": {
                "format": "date-time",
                "type": "string"
              },
              "latest_version.created_by": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "PagedReportingGroupOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/ReportingGroup"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "EmbeddedReportSort": {
        "properties": {
          "sort_by": {
            "example": "header_name.value",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "PagedEmbeddedReportRowList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmbeddedReportRowResponse"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedEmbeddedReportSheetList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EmbeddedReportSheetResponse"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "TemplateInputSchema": {
        "additionalProperties": false,
        "properties": {
          "display_name": {
            "minLength": 3,
            "maxLength": 64,
            "type": "string"
          },
          "data_type": {
            "$ref": "#/components/schemas/AttributeTypes"
          },
          "description": {
            "maxLength": 256,
            "type": "string"
          },
          "is_required": {
            "example": false,
            "type": "boolean"
          },
          "lookup_entity_type": {
            "$ref": "#/components/schemas/MeasurementSubjectEntityType"
          },
          "lookup_entity_attribute": {
            "type": "string"
          },
          "pick_list_values": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "order": {
            "type": "integer"
          }
        },
        "required": [
          "display_name",
          "data_type",
          "description",
          "is_required"
        ]
      },
      "PagedTemplatedReportList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TemplatedReportResponse"
                }
              }
            }
          }
        ]
      },
      "PagedTemplatedReportWithCategoryList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TemplatedReportWithCategoryResponse"
                }
              }
            }
          }
        ]
      },
      "PagedReportsLatestVersionList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/ReportWithTemplatedReportAndLatestVersionResponse"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "TemplatedReportFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Templated Reports where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AuditFields"
              },
              {
                "$ref": "#/components/schemas/TemplatedReportFilterFields"
              }
            ],
            "type": "object"
          }
        }
      },
      "TemplatedReportFilterFields": {
        "properties": {
          "display_name": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TemplatedReportStatus"
          }
        },
        "type": "object"
      },
      "TemplatedReportSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "display_name",
              "name",
              "status",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "PagedTemplatedReportCategoryList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/TemplatedReportCategoryResponse"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "TemplatedReportCategoryFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Templated Report Categories where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AuditFields"
              },
              {
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "company_id": {
                    "type": "string"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "TemplatedReportCategoryFilterFieldsWithPrefix": {
        "properties": {
          "category.id": {
            "type": "string"
          },
          "category.name": {
            "type": "string"
          },
          "category.description": {
            "type": "string"
          },
          "category.company_id": {
            "type": "string"
          },
          "category.created_by": {
            "type": "string"
          },
          "category.created_at": {
            "type": "string"
          },
          "category.updated_by": {
            "type": "string"
          },
          "category.updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TemplatedReportCategorySort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "description"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "TemplatedConfigurationFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Templated Configurations where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AuditFields"
              },
              {
                "properties": {
                  "display_name": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "equipment_type_id": {
                    "type": "string"
                  },
                  "primary_resource_type": {
                    "$ref": "#/components/schemas/TemplatedConfigurationResourceTypes"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "TemplatedConfigurationSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "display_name",
              "primary_resource_type",
              "created_at",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "PagedTemplatedConfigurationList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/TemplatedConfigurationResponse"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "TemplatedConfigurationRunInputs": {
        "properties": {
          "inputs": {
            "type": "object",
            "description": "Dictionary of input values for the template",
            "example": {
              "equipment_name": "My Dehydrator",
              "facility_id": "96d868a3-6eab-4955-8782-bb055f5deafd"
            },
            "additionalProperties": {
              "nullable": true,
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                },
                {
                  "type": "boolean"
                }
              ]
            }
          }
        }
      },
      "TemplatedConfigurationRunCustomAttributeInputs": {
        "properties": {
          "custom_attribute_inputs": {
            "type": "object",
            "description": "Dictionary of custom attributes for template assets, keys are the template resource ID",
            "example": {
              "equipment1": {
                "equipment_ca1": "string"
              },
              "flow1": {
                "flow_ca1": "string"
              }
            },
            "additionalProperties": {
              "type": "object",
              "description": "Dictionary of custom attributes for a specific template asset",
              "additionalProperties": {
                "nullable": true,
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              }
            }
          }
        }
      },
      "TemplatedConfigurationRunCustomAttributeConfiguration": {
        "properties": {
          "custom_attribute_configuration": {
            "$ref": "#/components/schemas/CustomAttributeConfigurationInput"
          }
        }
      },
      "TemplatedConfigurationRunResource": {
        "properties": {
          "template_resource_id": {
            "type": "string",
            "example": "equipment1"
          },
          "templated_configuration_run_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "$ref": "#/components/schemas/TemplatedConfigurationResourceStatus"
          },
          "name": {
            "type": "string",
            "example": "Equipment 1"
          },
          "type": {
            "$ref": "#/components/schemas/TemplatedConfigurationResourceTypes"
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "errors": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string",
                "example": "Failed to create equipment"
              },
              "detail": {
                "type": "string",
                "example": "Extra error details"
              }
            }
          },
          "is_primary": {
            "type": "boolean"
          },
          "metadata": {
            "type": "object",
            "description": "Additional information about the resource, similar to custom attibutes",
            "properties": {
              "dependencies": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": true,
            "example": {
              "facility_name": "My Facility",
              "facility_id": "96d868a3-6eab-4955-8782-bb055f5deafd",
              "dependencies": [
                "equipment1",
                "flow1"
              ]
            }
          }
        }
      },
      "TemplatedConfigurationRunResponse": {
        "type": "object",
        "allOf": [
          {
            "properties": {
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "templated_configuration_name": {
                "type": "string"
              },
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/TemplatedConfigurationRunStatus"
              },
              "result": {
                "type": "object",
                "additionalProperties": {
                  "type": "object"
                }
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              },
              "created_at": {
                "format": "date-time",
                "type": "string"
              },
              "updated_by": {
                "type": "string",
                "format": "uuid"
              },
              "updated_at": {
                "format": "date-time",
                "type": "string"
              },
              "resources": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TemplatedConfigurationRunResource"
                }
              },
              "primary_resource": {
                "$ref": "#/components/schemas/TemplatedConfigurationRunResource"
              },
              "templated_configuration": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "display_name": {
                    "type": "string"
                  },
                  "primary_resource_type": {
                    "$ref": "#/components/schemas/TemplatedConfigurationResourceTypes"
                  }
                }
              }
            },
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/TemplatedConfigurationRunInputs"
          },
          {
            "$ref": "#/components/schemas/TemplatedConfigurationRunCustomAttributeInputs"
          },
          {
            "$ref": "#/components/schemas/TemplatedConfigurationRunCustomAttributeConfiguration"
          }
        ]
      },
      "TemplatedConfigurationRunCreate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/TemplatedConfigurationRunInputs"
          },
          {
            "$ref": "#/components/schemas/TemplatedConfigurationRunCustomAttributeInputs"
          },
          {
            "$ref": "#/components/schemas/TemplatedConfigurationRunCustomAttributeConfiguration"
          }
        ]
      },
      "TemplatedConfigurationRunUpdate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/TemplatedConfigurationRunInputs"
          },
          {
            "$ref": "#/components/schemas/TemplatedConfigurationRunCustomAttributeInputs"
          }
        ]
      },
      "TemplatedConfigurationRunSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "templated_configuration_name",
              "status",
              "created_at",
              "created_by",
              "updated_at",
              "primary_resource.status",
              "primary_resource.type",
              "primary_resource.name",
              "primary_resource.metadata.facility_name",
              "primary_resource.metadata.sub_type"
            ],
            "example": "templated_configuration_name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "TemplatedConfigurationRunResourceFilterWithPrefix": {
        "properties": {
          "resources.template_resource_id": {
            "type": "string"
          },
          "resources.status": {
            "type": "string"
          },
          "resources.name": {
            "type": "string"
          },
          "resources.type": {
            "type": "string"
          },
          "resources.id": {
            "type": "string"
          },
          "resources.is_primary": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "TemplatedConfigurationRunPrimaryResourceFilterWithPrefix": {
        "properties": {
          "primary_resource.template_resource_id": {
            "type": "string"
          },
          "primary_resource.status": {
            "type": "string"
          },
          "primary_resource.name": {
            "type": "string"
          },
          "primary_resource.type": {
            "type": "string"
          },
          "primary_resource.id": {
            "type": "string"
          },
          "primary_resource.is_primary": {
            "type": "boolean"
          },
          "primary_resource.metadata": {
            "type": "object",
            "description": "Additional information about the resource, similar to custom attibutes"
          }
        },
        "type": "object"
      },
      "TemplatedConfigurationRunFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Templated Configuration Runs where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "properties": {
                  "templated_configuration_name": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  }
                }
              },
              {
                "$ref": "#/components/schemas/TemplatedConfigurationRunResourceFilterWithPrefix"
              },
              {
                "$ref": "#/components/schemas/TemplatedConfigurationRunPrimaryResourceFilterWithPrefix"
              },
              {
                "$ref": "#/components/schemas/AuditFields"
              }
            ],
            "type": "object"
          }
        }
      },
      "TemplatedConfigurationRunsExportFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Templated Configuration Runs Export where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "properties": {
                  "status": {
                    "type": "string"
                  }
                }
              },
              {
                "$ref": "#/components/schemas/AuditFields"
              }
            ],
            "type": "object"
          }
        }
      },
      "PagedTemplatedConfigurationRunList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/TemplatedConfigurationRunResponse"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "TemplatedConfigurationRunDependencyGraphResourceNode": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "resource_id": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/TemplatedConfigurationResourceTypes"
          },
          "status": {
            "$ref": "#/components/schemas/TemplatedConfigurationResourceStatus"
          },
          "name": {
            "type": "string"
          },
          "associated_resources": {
            "type": "object"
          }
        }
      },
      "TemplatedConfigurationRunDependencyGraphResponse": {
        "type": "object",
        "allOf": [
          {
            "properties": {
              "name": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/TemplatedConfigurationRunStatus"
              },
              "created_at": {
                "format": "date-time",
                "type": "string"
              },
              "updated_by": {
                "type": "string",
                "format": "uuid"
              },
              "updated_at": {
                "format": "date-time",
                "type": "string"
              },
              "resource_status_counts": {
                "type": "object",
                "properties": {
                  "submitted": {
                    "type": "number"
                  },
                  "success": {
                    "type": "number"
                  },
                  "failed": {
                    "type": "number"
                  }
                }
              },
              "primary_resource": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "resource_id": {
                    "type": "string"
                  },
                  "type": {
                    "$ref": "#/components/schemas/TemplatedConfigurationResourceTypes"
                  },
                  "status": {
                    "$ref": "#/components/schemas/TemplatedConfigurationResourceStatus"
                  },
                  "name": {
                    "type": "string"
                  },
                  "associated_resources": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TemplatedConfigurationRunDependencyGraphResourceNode"
                      }
                    }
                  }
                }
              },
              "additional_resources": {
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TemplatedConfigurationRunDependencyGraphResourceNode"
                  }
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "RecordValueCreateInput": {
        "properties": {
          "value": {
            "type": "number"
          },
          "measurement_unit": {
            "type": "string"
          },
          "configuration": {
            "$ref": "#/components/schemas/RecordValueConfiguration"
          },
          "note": {
            "type": "string"
          },
          "attachment_ref": {
            "type": "string"
          },
          "attachment_filename": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "RecordValueLockInput": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/RecordValueStatusType"
          }
        },
        "type": "object"
      },
      "RecordValuesOfRecordLockInput": {
        "properties": {
          "measurement_types": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "volume"
            },
            "description": "measurement_types"
          },
          "status": {
            "$ref": "#/components/schemas/RecordValueStatusType"
          }
        },
        "type": "object"
      },
      "RecordValue": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecordValueCreateInput"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "record_id": {
                "format": "uuid",
                "type": "string"
              },
              "measurement_type": {
                "type": "string"
              }
            },
            "type": "object"
          }
        ]
      },
      "LockRecordValuesOfRecordResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "recordValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordValue"
            }
          }
        },
        "type": "object"
      },
      "RecordValueSearchLockResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "affected": {
            "type": "number",
            "example": 109
          }
        },
        "type": "object"
      },
      "RecordValueWithCalculatorInputRecord": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecordValue"
          },
          {
            "properties": {
              "calculator_input_record": {
                "$ref": "#/components/schemas/CalculatorInputRecord"
              }
            },
            "type": "object"
          }
        ]
      },
      "RecordCreateInput": {
        "properties": {
          "asset_id": {
            "format": "uuid",
            "type": "string",
            "description": "Either asset_id or asset_filter is required"
          },
          "asset_filter": {
            "description": "Either asset_id or asset_filter is required",
            "allOf": [
              {
                "$ref": "#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/DevicePrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/EquipmentFacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/FlowFacilityPrimaryFilterFieldsWithPrefix"
              }
            ]
          },
          "reporting_group_id": {
            "type": "string"
          },
          "year_month": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Record": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecordCreateInput"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "asset_type": {
                "$ref": "#/components/schemas/MeasurementSubjectEntityType"
              },
              "company_id": {
                "format": "uuid",
                "type": "string"
              },
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RecordValue"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "RecordSort": {
        "properties": {
          "sort_by": {
            "description": "any field from group_by param",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "RecordPrimaryFilterFields": {
        "properties": {
          "id": {
            "description": "record ID",
            "type": "string",
            "format": "uuid"
          },
          "asset_type": {
            "$ref": "#/components/schemas/MeasurementSubjectEntityType"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid",
            "example": {
              "$in": [
                "c3e9446d-4cc0-4e7b-bb43-43fff9361957",
                "c3e9446d-4cc0-4e7b-bb43-43fff9361957"
              ]
            }
          },
          "reporting_group_id": {
            "type": "string",
            "example": "subpartw"
          },
          "year_month": {
            "type": "string",
            "example": 202201
          }
        },
        "type": "object"
      },
      "RecordFilterFields": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/EquipmentFacilityPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/DevicePrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/FlowPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/RecordPrimaryFilterFields"
          },
          {
            "properties": {
              "measurement_type": {
                "type": "string"
              },
              "record_value.id": {
                "description": "record value ID",
                "type": "string",
                "format": "uuid"
              },
              "flow.associated_facility.custom_attributes": {
                "type": "object"
              },
              "flow.associated_equipment.custom_attributes": {
                "type": "object"
              }
            },
            "type": "object"
          }
        ]
      },
      "ApplyDefaultRecordValueConfigurationRecordFilterInput": {
        "allOf": [
          {
            "properties": {
              "filter": {
                "$ref": "#/components/schemas/RecordFilterFields"
              }
            }
          },
          {
            "$ref": "#/components/schemas/OverwriteAllValues"
          }
        ]
      },
      "RecordFilter": {
        "properties": {
          "filter": {
            "$ref": "#/components/schemas/RecordFilterFields"
          },
          "group_by": {
            "type": "array",
            "items": {
              "description": "any field from filter param",
              "type": "string",
              "example": "year_month"
            }
          }
        },
        "type": "object"
      },
      "RecordLockFilter": {
        "properties": {
          "filter": {
            "$ref": "#/components/schemas/RecordFilterFields"
          }
        },
        "type": "object"
      },
      "CalculatorResultRecordValueConfiguration": {
        "properties": {
          "configuration_type": {
            "type": "string",
            "enum": [
              "calculator_result"
            ]
          },
          "aggregate_function": {
            "$ref": "#/components/schemas/RecordValueConfigurationFunction"
          },
          "calculator_result_ids": {
            "type": "array",
            "items": {
              "format": "uuid",
              "type": "string"
            }
          }
        },
        "type": "object"
      },
      "FormMeasurementRecordValueConfiguration": {
        "properties": {
          "configuration_type": {
            "type": "string",
            "enum": [
              "form_measurement"
            ]
          },
          "aggregate_function": {
            "$ref": "#/components/schemas/RecordValueConfigurationFunction"
          },
          "form_category_id": {
            "type": "string",
            "format": "uuid"
          },
          "measurement_ids": {
            "type": "array",
            "items": {
              "format": "uuid",
              "type": "string"
            }
          }
        },
        "type": "object"
      },
      "ManualRecordValueConfiguration": {
        "properties": {
          "configuration_type": {
            "type": "string",
            "enum": [
              "manual"
            ]
          },
          "value": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "MeasurementSeriesRecordValueConfiguration": {
        "properties": {
          "configuration_type": {
            "type": "string",
            "enum": [
              "measurement_series"
            ]
          },
          "aggregate_function": {
            "$ref": "#/components/schemas/RecordValueConfigurationFunction"
          },
          "measurement_series_id": {
            "type": "string",
            "format": "uuid"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "Interval": {
            "type": "string",
            "example": "1day",
            "enum": [
              "1minute",
              "15minute",
              "1hour",
              "1day"
            ]
          }
        },
        "type": "object"
      },
      "RecordValueConfiguration": {
        "allOf": [
          {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ManualRecordValueConfiguration"
              },
              {
                "$ref": "#/components/schemas/FormMeasurementRecordValueConfiguration"
              },
              {
                "$ref": "#/components/schemas/CalculatorResultRecordValueConfiguration"
              },
              {
                "$ref": "#/components/schemas/MeasurementSeriesRecordValueConfiguration"
              }
            ]
          },
          {
            "properties": {
              "sources": {
                "items": {
                  "type": "object"
                },
                "type": "array",
                "readOnly": true
              }
            },
            "type": "object"
          }
        ]
      },
      "FormMeasurementValueDefaultConfiguration": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FormSubmissionFilter"
          },
          {
            "properties": {
              "configuration_type": {
                "type": "string",
                "enum": [
                  "form_measurement"
                ]
              },
              "aggregate_function": {
                "$ref": "#/components/schemas/RecordValueDefaultConfigurationFunction"
              },
              "sort": {
                "type": "string",
                "enum": [
                  "measurement.time",
                  "measurement.value",
                  "measurement.question_index",
                  "measurement.created_at",
                  "form_submission.created_at",
                  "form_submission.updated_at",
                  "form_schema.name",
                  "form_schema.created_at",
                  "form_schema.updated_at",
                  "form_category.name",
                  "form_category.created_at",
                  "form_category.updated_at"
                ]
              },
              "sort_direction": {
                "type": "string",
                "enum": [
                  "asc",
                  "desc"
                ]
              },
              "second_sort": {
                "type": "string",
                "enum": [
                  "measurement.time",
                  "measurement.value",
                  "measurement.question_index",
                  "measurement.created_at",
                  "form_submission.created_at",
                  "form_submission.updated_at",
                  "form_schema.name",
                  "form_schema.created_at",
                  "form_schema.updated_at",
                  "form_category.name",
                  "form_category.created_at",
                  "form_category.updated_at"
                ]
              },
              "window": {
                "type": "string",
                "description": "Fetch results within a window relative to measurement time of the form measurement (1 month, 3 month, 1 year)",
                "example": "1month"
              },
              "timezone": {
                "type": "string",
                "example": "America/Los_Angeles"
              }
            }
          }
        ],
        "type": "object"
      },
      "CalculatorResultValueDefaultConfiguration": {
        "properties": {
          "configuration_type": {
            "type": "string",
            "enum": [
              "calculator_result"
            ]
          },
          "aggregate_function": {
            "$ref": "#/components/schemas/RecordValueDefaultConfigurationFunction"
          },
          "sort": {
            "type": "string"
          },
          "sort_direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ]
          },
          "window": {
            "type": "string",
            "description": "Fetch results within a window relative to the year_month of the calculator result (1 month, 3 month, 1 year)",
            "example": "1month"
          },
          "timezone": {
            "type": "string",
            "example": "America/Los_Angeles"
          },
          "filter": {
            "$ref": "#/components/schemas/CalculatorResultFilterFields"
          }
        },
        "type": "object"
      },
      "MeasurementSeriesValueDefaultConfiguration": {
        "properties": {
          "configuration_type": {
            "type": "string",
            "enum": [
              "measurement_series"
            ]
          },
          "aggregate_function": {
            "$ref": "#/components/schemas/RecordValueDefaultConfigurationFunction"
          },
          "window": {
            "type": "string",
            "description": "Fetch results within a window relative to measurement time of the measurement value (1 month, 3 month, 1 year)",
            "example": "1month"
          },
          "timezone": {
            "type": "string",
            "example": "America/Los_Angeles"
          },
          "filter": {
            "$ref": "#/components/schemas/MeasurementSeriesFilter"
          }
        },
        "type": "object"
      },
      "RecordValueDefaultConfiguration": {
        "allOf": [
          {
            "oneOf": [
              {
                "$ref": "#/components/schemas/FormMeasurementValueDefaultConfiguration"
              },
              {
                "$ref": "#/components/schemas/CalculatorResultValueDefaultConfiguration"
              },
              {
                "$ref": "#/components/schemas/MeasurementSeriesValueDefaultConfiguration"
              }
            ],
            "type": "object"
          }
        ]
      },
      "UnitConfigUpdate": {
        "type": "object",
        "properties": {
          "measurement_unit": {
            "type": "string",
            "example": "g"
          },
          "precision": {
            "type": "integer",
            "example": 3
          }
        }
      },
      "CompanyUnitConfig": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "$ref": "#/components/schemas/UnitConfigUpdate"
          }
        ],
        "properties": {
          "measurement_type": {
            "type": "string",
            "example": "mass"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "PagedCompanyUnitConfig": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/CompanyUnitConfig"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "UserUnitConfig": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "$ref": "#/components/schemas/UnitConfigUpdate"
          }
        ],
        "properties": {
          "measurement_type": {
            "type": "string",
            "example": "mass"
          },
          "user_id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "PagedUserUnitConfig": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/UserUnitConfig"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "UnitConfigFilter": {
        "properties": {
          "filter": {
            "type": "object",
            "properties": {
              "measurement_type": {
                "type": "string",
                "example": "volume"
              },
              "measurement_unit": {
                "type": "string",
                "example": "l"
              }
            }
          }
        }
      },
      "UnitConfigSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "measurement_type",
              "measurement_unit",
              "created_at",
              "updated_at"
            ],
            "example": "measurement_type",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "UnitConfigFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/UnitConfigFilter"
          }
        ],
        "type": "object"
      },
      "UnitConfigFilterUpdateInput": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/UnitConfigFilter"
          }
        ]
      },
      "UnitConfigFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/UnitConfigFilter"
          },
          {
            "properties": {
              "entity_type": {
                "example": "company_unit_config",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "UserBasic": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          }
        }
      },
      "PagedUserList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IUser"
                    },
                    {
                      "properties": {
                        "user_groups": {
                          "items": {
                            "$ref": "#/components/schemas/GroupBasic"
                          }
                        },
                        "user_groups_count": {
                          "type": "number"
                        },
                        "roles": {
                          "items": {
                            "$ref": "#/components/schemas/GroupBasic"
                          }
                        },
                        "roles_count": {
                          "type": "number"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "UserFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Users where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AuditFields"
              },
              {
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string"
                  },
                  "quicksight": {
                    "type": "boolean"
                  },
                  "timezone": {
                    "type": "string",
                    "example": "America/Los_Angeles"
                  },
                  "status": {
                    "$ref": "#/components/schemas/UserStatus"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "UserSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "name",
              "quicksight",
              "timezone",
              "status",
              "email",
              "created_at",
              "updated_at",
              "created_by",
              "updated_by"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "PagedCompanyList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/ICompany"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "CompanyFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Companies where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AuditFields"
              },
              {
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "CompanySort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "name",
              "created_at",
              "updated_at",
              "created_by",
              "updated_by"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "UpdateRoleInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/RoleStatus"
          }
        }
      },
      "CreateRoleInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateRoleInput"
          }
        ]
      },
      "Role": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateRoleInput"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "company_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        ]
      },
      "GroupBasic": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "RoleMembership": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "company_id": {
                "type": "string",
                "format": "uuid"
              },
              "role_id": {
                "type": "string",
                "format": "uuid"
              },
              "user_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        ]
      },
      "RoleMembershipWithRole": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RoleMembership"
          },
          {
            "properties": {
              "role": {
                "$ref": "#/components/schemas/GroupBasic"
              }
            }
          }
        ]
      },
      "RoleMembershipWithUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RoleMembership"
          },
          {
            "properties": {
              "user": {
                "$ref": "#/components/schemas/UserBasic"
              }
            }
          }
        ]
      },
      "CreateAndUpdateUserGroupInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "group_category_id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "UserGroup": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateAndUpdateUserGroupInput"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "company_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        ]
      },
      "UserGroupMembership": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "company_id": {
                "type": "string",
                "format": "uuid"
              },
              "user_group_id": {
                "type": "string",
                "format": "uuid"
              },
              "user_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        ]
      },
      "UserGroupMembershipWithUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UserGroupMembership"
          },
          {
            "properties": {
              "user": {
                "$ref": "#/components/schemas/UserBasic"
              }
            }
          }
        ]
      },
      "GroupCategoryCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "description": {
            "type": "string",
            "maxLength": 256
          }
        },
        "type": "object"
      },
      "GroupCategoryUpdate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "description": {
            "type": "string",
            "maxLength": 256
          }
        },
        "type": "object"
      },
      "GroupCategory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GroupCategoryCreate"
          },
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "id": {
                "format": "uuid",
                "type": "string"
              },
              "company_id": {
                "format": "uuid",
                "type": "string"
              }
            }
          }
        ],
        "type": "object"
      },
      "GroupCategoryFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Group Category where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_by": {
                "type": "string",
                "format": "uuid"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "GroupCategorySort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "name",
              "description",
              "created_by",
              "created_at",
              "updated_by",
              "updated_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "PagedGroupCategoryList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/GroupCategory"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PermissionDecisionRequest": {
        "type": "object",
        "properties": {
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "facilities:read",
              "facilities:write",
              "facilities:delete",
              "equipment:read",
              "equipment:write",
              "equipment:delete"
            ]
          }
        }
      },
      "PermissionDecision": {
        "type": "object",
        "additionalProperties": {
          "type": "boolean"
        },
        "example": {
          "facilities:read": true,
          "equipment:read": true
        }
      },
      "PagedRoleList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "type": "array",
                  "$ref": "#/components/schemas/Role"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedUserGroupList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "type": "array",
                  "$ref": "#/components/schemas/UserGroup"
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "RoleFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Groups where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AuditFields"
              },
              {
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string"
                  },
                  "status": {
                    "$ref": "#/components/schemas/UserStatus"
                  },
                  "user.id": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "RoleSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "name",
              "status",
              "created_at",
              "updated_at",
              "created_by",
              "updated_by"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "UserGroupFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for User Groups where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AuditFields"
              },
              {
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string"
                  },
                  "group_category_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "user.id": {
                    "type": "string",
                    "format": "uuid",
                    "example": {
                      "$in": [
                        "c3e9446d-4cc0-4e7b-bb43-43fff9361957",
                        "c3e9446d-4cc0-4e7b-bb43-43fff9361957"
                      ]
                    }
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "UserGroupSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "id",
              "name",
              "group_category_id",
              "created_at",
              "updated_at",
              "created_by",
              "updated_by"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "FeatureFlag": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "version": {
                "type": "string"
              },
              "isEnabled": {
                "type": "boolean"
              },
              "isDeprecated": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "Permission": {
        "properties": {
          "name": {
            "type": "string",
            "example": "facilities:read"
          }
        },
        "type": "object"
      },
      "SinglePermissionInput": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "filter": {
            "description": "A filter object for Permission where it can filter based on any of these following fields. Name can be substring matched. All other values are exact matched.",
            "example": {
              "$or": [
                {
                  "custom_attributes.region": "US"
                },
                {
                  "name": {
                    "$like": "Facility 1"
                  }
                }
              ]
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "PermissionInput": {
        "properties": {
          "name": {
            "type": "string",
            "example": "facilities:read"
          },
          "active": {
            "type": "boolean"
          },
          "filter": {
            "description": "A filter object for Permission where it can filter based on any of these following fields. Name can be substring matched. All other values are exact matched.",
            "example": {
              "$or": [
                {
                  "custom_attributes.region": "US"
                },
                {
                  "name": {
                    "$like": "Facility 1"
                  }
                }
              ]
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "PermissionsInput": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PermissionInput"
        }
      },
      "PermissionsOutput": {
        "type": "array",
        "items": {
          "allOf": [
            {
              "$ref": "#/components/schemas/AuditFields"
            },
            {
              "$ref": "#/components/schemas/PermissionInput"
            },
            {
              "properties": {
                "company_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "role_id": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          ]
        }
      },
      "UserPermissions": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PermissionInput"
        }
      },
      "PagedFeatureFlagsList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FeatureFlag"
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "FeatureFlagsFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for feature flags where it can filter based on any of these following fields. Name can be substring matched. All other values are exact matched.",
            "allOf": [
              {
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "isEnabled": {
                    "type": "boolean"
                  },
                  "isDeprecated": {
                    "type": "boolean"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "CompanyFeatureFlag": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AuditFields"
          },
          {
            "properties": {
              "company_id": {
                "type": "string"
              },
              "feature_flag_name": {
                "type": "string"
              }
            }
          }
        ]
      },
      "PagedCompanyFeatureFlagsList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/CompanyFeatureFlag"
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "AllCompanyFeatureFlagsFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for feature flags where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "properties": {
                  "company_id": {
                    "type": "string"
                  },
                  "feature_flag_name": {
                    "type": "string"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "CompanyFeatureFlagsFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for feature flags where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "allOf": [
              {
                "properties": {
                  "feature_flag_name": {
                    "type": "string"
                  }
                }
              }
            ],
            "type": "object"
          }
        }
      },
      "AuditFields": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "format": "uuid",
            "type": "string"
          },
          "updated_by": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "WorkflowCategoryCreate": {
        "$ref": "#/components/schemas/ICreateWorkflowCategoryInput"
      },
      "WorkflowCategoryUpdate": {
        "$ref": "#/components/schemas/IUpdateWorkflowCategoryInput"
      },
      "WorkflowCategory": {
        "$ref": "#/components/schemas/IWorkflowCategory"
      },
      "WorkflowTemplateCreate": {
        "$ref": "#/components/schemas/ICreateWorkflowTemplateInput"
      },
      "WorkflowTemplateUpdate": {
        "$ref": "#/components/schemas/IUpdateWorkflowTemplateInput"
      },
      "WorkflowTemplate": {
        "$ref": "#/components/schemas/IWorkflowTemplate"
      },
      "WorkflowTemplateCategoryFacility": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IWorkflowCategory"
          },
          {
            "properties": {
              "facilities": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Pagination"
                  },
                  {
                    "properties": {
                      "data": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "format": "uuid"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "PagedWorkflowTemplateList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/WorkflowTemplateCategoryFacility"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "WorkflowCategoryFilterWithPrefix": {
        "properties": {
          "workflow_category.id": {
            "type": "string",
            "format": "uuid"
          },
          "workflow_category.name": {
            "type": "string"
          },
          "workflow_category.description": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "WorkflowTemplateFilterWithPrefix": {
        "properties": {
          "workflow_template.id": {
            "type": "string",
            "format": "uuid"
          },
          "workflow_template.category_id": {
            "type": "string",
            "format": "uuid"
          },
          "workflow_template.name": {
            "type": "string"
          },
          "workflow_template.description": {
            "type": "string"
          },
          "workflow_template.asset_type": {
            "$ref": "#/components/schemas/AssetType"
          },
          "workflow_template.status": {
            "$ref": "#/components/schemas/WorkflowTemplateStatus"
          }
        },
        "type": "object"
      },
      "WorkflowTemplateFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Workflow Template where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "category_id": "1b154c71-67be-1f51-40ce-3aefb42a6480",
              "status": "active",
              "created_by": "1b154c71-67be-1f51-40ce-3aefb42a6480",
              "created_at": {
                "$gt": "2023-07-01T08:19:25.438Z",
                "$lt": "2023-07-30T08:19:25.438Z"
              }
            },
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "category_id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/WorkflowTemplateStatus"
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "WorkflowTemplateSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "category_id",
              "name",
              "description",
              "status",
              "created_by",
              "created_at"
            ],
            "example": "name",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "CreateWorkflow": {
        "$ref": "#/components/schemas/ICreateWorkflowInput"
      },
      "WorkflowFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Workflow where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "category_id": "1b154c71-67be-1f51-40ce-3aefb42a6480",
              "status": "active",
              "created_by": "1b154c71-67be-1f51-40ce-3aefb42a6480",
              "created_at": {
                "$gt": "2023-07-01T08:19:25.438Z",
                "$lt": "2023-07-30T08:19:25.438Z"
              }
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "workflow_template_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "status": {
                    "$ref": "#/components/schemas/WorkflowStatus"
                  },
                  "created_by": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "created_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "updated_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "due_date": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "workflow_category.id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "workflow_category.name": {
                    "type": "string"
                  },
                  "workflow_template.name": {
                    "type": "string"
                  },
                  "workflow_template.status": {
                    "$ref": "#/components/schemas/WorkflowTemplateStatus"
                  },
                  "workflow_template.description": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            ]
          }
        },
        "type": "object"
      },
      "WorkflowTaskFilter": {
        "properties": {
          "filter": {
            "description": "A filter object for Workflow task where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "workflow_id": "1b154c71-67be-1f51-40ce-3aefb42a6480",
              "status": "open"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix"
              },
              {
                "$ref": "#/components/schemas/WorkflowTemplateFilterWithPrefix"
              },
              {
                "$ref": "#/components/schemas/WorkflowCategoryFilterWithPrefix"
              },
              {
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "workflow_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "status": {
                    "$ref": "#/components/schemas/WorkflowTaskStatus"
                  },
                  "created_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "updated_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "assigned_to": {
                    "type": "string",
                    "format": "uuid",
                    "deprecated": true
                  },
                  "assignee_user": {
                    "type": "string",
                    "description": "filter tasks assigned to a specific user",
                    "format": "uuid"
                  },
                  "assignee_group": {
                    "type": "string",
                    "description": "filter tasks assigned to a specific group",
                    "format": "uuid"
                  },
                  "assignee_group.user_id": {
                    "type": "string",
                    "description": "filter tasks assigned to a specific user via group",
                    "format": "uuid"
                  },
                  "type": {
                    "$ref": "#/components/schemas/UserTask"
                  },
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "workflow.facility_id": {
                    "type": "string"
                  },
                  "workflow.due_date": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "workflow.status": {
                    "type": "string"
                  },
                  "form_schema_id": {
                    "type": "string",
                    "description": "filter tasks by form schema",
                    "format": "uuid"
                  }
                },
                "type": "object"
              }
            ]
          }
        },
        "type": "object"
      },
      "WorkflowTaskFilterUpdateInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/WorkflowTaskFilter"
          }
        ]
      },
      "WorkflowTaskFilterInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterInput"
          },
          {
            "$ref": "#/components/schemas/WorkflowTaskFilter"
          }
        ],
        "type": "object"
      },
      "WorkflowTaskFilterOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FilterOutput"
          },
          {
            "$ref": "#/components/schemas/WorkflowTaskFilter"
          }
        ],
        "type": "object"
      },
      "WorkflowAction": {
        "$ref": "#/components/schemas/IWorkflowAction"
      },
      "WorkflowStepFilter": {
        "type": "object",
        "properties": {
          "filter": {
            "description": "A filter object for workflow steps where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.",
            "example": {
              "workflow_id": "1b154c71-67be-1f51-40ce-3aefb42a6480",
              "status": "open"
            },
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "workflow_id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "type": {
                "$ref": "#/components/schemas/WorkflowTaskType"
              },
              "step_type": {
                "$ref": "#/components/schemas/WorkflowStepType"
              },
              "status": {
                "$ref": "#/components/schemas/WorkflowTaskStatus",
                "nullable": true
              },
              "assigned_to": {
                "type": "string",
                "format": "uuid",
                "deprecated": true
              },
              "assignee_user": {
                "type": "string",
                "description": "filter tasks assigned to a specific user",
                "format": "uuid"
              },
              "assignee_group": {
                "type": "string",
                "description": "filter tasks assigned to a specific group",
                "format": "uuid"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "AssetFilterFields": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/DevicePrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/FlowPrimaryFilterFieldsWithPrefix"
          },
          {
            "$ref": "#/components/schemas/AssetGroupFilterWithPrefix"
          }
        ]
      },
      "WorkflowSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "status",
              "created_at"
            ],
            "example": "created_at",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "WorkflowTaskSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "status",
              "name",
              "description",
              "created_at"
            ],
            "example": "created_at",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "WorkflowStepSort": {
        "properties": {
          "sort_by": {
            "enum": [
              "name",
              "description",
              "type",
              "step_type",
              "status",
              "created_at",
              "updated_at"
            ],
            "example": "created_at",
            "type": "string"
          },
          "sort_direction": {
            "default": "desc",
            "description": "Sort direction",
            "enum": [
              "asc",
              "desc"
            ],
            "example": "desc",
            "type": "string"
          }
        }
      },
      "PagedWorkflowList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/IWorkflow"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedWorkflowFormSubmissionList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FormSubmissionWithFormSchemaName"
                    },
                    {
                      "properties": {
                        "associated_tasks": {
                          "items": {
                            "properties": {
                              "workflow_task_name": {
                                "type": "string"
                              },
                              "workflow_task_id": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "form_submission_id": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "associated_actions": {
                          "items": {
                            "properties": {
                              "workflow_action_name": {
                                "type": "string"
                              },
                              "workflow_action_id": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "form_submission_id": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "is_workflow_trigger": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  ]
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedWorkflowTaskList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/IWorkflowTask"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "PagedWorkflowStepList": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          },
          {
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/IWorkflowStep"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "Workflow": {
        "$ref": "#/components/schemas/IWorkflow"
      },
      "WorkflowUpdate": {
        "$ref": "#/components/schemas/IUpdateWorkflowInput"
      },
      "WorkflowTask": {
        "$ref": "#/components/schemas/IWorkflowTask"
      },
      "WorkflowStep": {
        "$ref": "#/components/schemas/IWorkflowStep"
      },
      "WorkflowTaskWithForm": {
        "allOf": [
          {
            "$ref": "#/components/schemas/IWorkflowTask"
          },
          {
            "properties": {
              "config_form_schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              },
              "form_submission": {
                "items": {
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "created_by": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "status": {
                      "$ref": "#/components/schemas/FormSubmissionStatus"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "datetime"
                    },
                    "form_schema": {
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        ]
      },
      "WorkflowTaskUpdate": {
        "$ref": "#/components/schemas/IUpdateWorkflowTaskInput"
      },
      "ResourceType": {
        "type": "string",
        "enum": [
          "facility",
          "equipment",
          "device",
          "flow",
          "record_value"
        ]
      },
      "AssetGroupStatus": {
        "type": "string",
        "enum": [
          "active",
          "inactive"
        ]
      },
      "EstimationMethodResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "analytics_library_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW"
          },
          "analytics_calculator_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW-AcidGasRemovalMethod1"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "SubpartW AGR Method"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ]
          },
          "default_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              }
            }
          },
          "default_asset_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            },
            "example": {
              "a04b4387-5145-4935-9edc-d53ecdb7a6c0": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              },
              "99a45dd3-6ce1-4290-9d16-79415111cc43": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "company_id",
          "asset_id",
          "analytics_library_id",
          "analytics_calculator_id",
          "name",
          "status",
          "default_values",
          "default_asset_values",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by"
        ]
      },
      "AssetType": {
        "type": "string",
        "enum": [
          "equipment",
          "device",
          "facility",
          "flow"
        ]
      },
      "CalculatorInputs": {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "nullable": true,
          "properties": {
            "value": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "nullable": true
                },
                {
                  "type": "boolean"
                },
                {
                  "nullable": true
                }
              ]
            },
            "unit": {
              "type": "string"
            },
            "measurement_type": {
              "type": "string"
            },
            "measurement_quantity": {
              "type": "string"
            }
          },
          "required": [
            "value"
          ]
        },
        "example": {
          "fuel_type": {
            "value": "Eastern",
            "unit": "",
            "measurement_type": "measurement_type",
            "measurement_quantity": "dimensionless_coefficient"
          },
          "volume": {
            "value": 5,
            "unit": "e3m3",
            "measurement_type": "measurement_type",
            "measurement_quantity": "volume"
          },
          "rvp": null
        }
      },
      "EquipmentStatus": {
        "type": "string",
        "enum": [
          "active",
          "inactive",
          "deprecated"
        ]
      },
      "FlowStatus": {
        "type": "string",
        "enum": [
          "active",
          "inactive"
        ]
      },
      "FlowTypes": {
        "type": "string",
        "description": "Use `id` value of any index in `GET /v1/flow_types`"
      },
      "ProductTypes": {
        "type": "string",
        "description": "Use `id` value of any index in `GET /v1/product_types`"
      },
      "ProductCategories": {
        "type": "string",
        "description": "Use `id` value of any index in `GET /v1/product_categories`"
      },
      "ReportWithTemplatedReportResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 128
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "exporting",
              "failed",
              "success"
            ]
          },
          "templated_report_name": {
            "type": "string"
          },
          "input": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "User input for a templated report based on the input schema for the desired templated report.",
            "example": {
              "year_month": 202201,
              "reporting_group_id": "bc37cb31-08ce-4b22-8f4c-7d44692a4ef2",
              "asset_id": "89c100dc-0401-447f-a9f5-72ae124f3244"
            }
          },
          "s3_object_id": {
            "type": "string"
          },
          "report_version": {
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "templated_report": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64,
                "pattern": "^\\w+$"
              },
              "display_name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "archived"
                ],
                "default": "active"
              },
              "input_schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "display_name": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64
                    },
                    "data_type": {
                      "type": "string",
                      "enum": [
                        "boolean",
                        "number",
                        "integer",
                        "pick-list",
                        "multi-pick-list",
                        "string",
                        "geo_point",
                        "number-array",
                        "lookup",
                        "date",
                        "date-time",
                        "date-time-range",
                        "file"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 256
                    },
                    "is_required": {
                      "type": "boolean"
                    },
                    "lookup_entity_type": {
                      "type": "string",
                      "enum": [
                        "equipment",
                        "device",
                        "facility",
                        "flow",
                        "asset_group",
                        "form_schema"
                      ]
                    },
                    "lookup_entity_attribute": {
                      "type": "string"
                    },
                    "pick_list_values": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "order": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "display_name",
                    "data_type",
                    "description",
                    "is_required"
                  ],
                  "additionalProperties": false
                },
                "default": {}
              },
              "is_embedded": {
                "type": "boolean",
                "default": false
              },
              "use_data_layer_v2": {
                "type": "boolean",
                "default": false
              },
              "description": {
                "type": "string",
                "maxLength": 256
              },
              "deduplication_columns": {
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9_]+$"
                  },
                  "maxItems": 20
                }
              },
              "row_styling_headers": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_]+$"
                }
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              }
            },
            "required": [
              "name",
              "display_name",
              "created_at",
              "updated_at"
            ]
          },
          "s3_download_link": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "company_id",
          "status",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by"
        ],
        "additionalProperties": false
      },
      "schemas-FilterStatus": {
        "type": "string",
        "enum": [
          "active",
          "draft"
        ]
      },
      "TemplatedReportStatus": {
        "type": "string",
        "enum": [
          "active",
          "archived"
        ]
      },
      "ICreateUserInput": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "default": "0007bb10-5367-4d41-ad10-b05468b52529"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "quicksight": {
            "type": "boolean",
            "default": false
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ],
            "default": "active"
          },
          "timezone": {
            "type": "string",
            "default": "US/Central",
            "example": "America/Los_Angeles"
          }
        },
        "required": [
          "name",
          "email"
        ]
      },
      "IUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "default": "a6877768-18a7-4371-b3b2-f9a89f9dc6f2"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "quicksight": {
            "type": "boolean",
            "default": false
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ],
            "default": "active"
          },
          "timezone": {
            "type": "string",
            "default": "US/Central",
            "example": "America/Los_Angeles"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "name",
          "email",
          "phone",
          "company_id",
          "created_at",
          "created_by",
          "updated_at",
          "updated_by"
        ]
      },
      "UserStatus": {
        "type": "string",
        "enum": [
          "active",
          "disabled"
        ]
      },
      "UserWithCompanies": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "default": "6fe51353-233f-4745-84df-e51a7b9fe46f"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "quicksight": {
            "type": "boolean",
            "default": false
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ],
            "default": "active"
          },
          "timezone": {
            "type": "string",
            "default": "US/Central",
            "example": "America/Los_Angeles"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          }
        },
        "required": [
          "name",
          "email",
          "phone",
          "company_id",
          "created_at",
          "created_by",
          "updated_at",
          "updated_by",
          "companies"
        ]
      },
      "IUpdateUserInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "quicksight": {
            "type": "boolean",
            "default": false
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ],
            "default": "active"
          },
          "timezone": {
            "type": "string",
            "default": "US/Central",
            "example": "America/Los_Angeles"
          }
        }
      },
      "RoleStatus": {
        "type": "string",
        "enum": [
          "active",
          "disabled"
        ]
      },
      "ICreateCompanyWithAdminInput": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "localization": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            }
          },
          "admin": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "email": {
                "type": "string",
                "format": "email"
              }
            },
            "required": [
              "name",
              "email"
            ]
          }
        },
        "required": [
          "name",
          "localization",
          "admin"
        ]
      },
      "ICompany": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "localization": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "name",
          "localization",
          "created_at",
          "created_by",
          "updated_at",
          "updated_by"
        ]
      },
      "IUpdateCompanyInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "localization": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            }
          }
        }
      },
      "CommentId": {
        "type": "string",
        "format": "uuid"
      },
      "IUpdateCommentInput": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 5120
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "file_id": {
                  "type": "string"
                },
                "file_name": {
                  "type": "string",
                  "maxLength": 128
                }
              },
              "required": [
                "file_id",
                "file_name"
              ]
            },
            "maxItems": 10
          }
        }
      },
      "IComment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "text": {
            "type": "string",
            "maxLength": 5120
          },
          "title_context": {
            "type": "string",
            "maxLength": 64
          },
          "is_deleted": {
            "type": "boolean",
            "default": false
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "commented_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          }
        },
        "required": [
          "id",
          "company_id",
          "text",
          "created_by",
          "created_at",
          "updated_at",
          "commented_at"
        ]
      },
      "CommentEntityType": {
        "type": "string",
        "enum": [
          "workflow",
          "asset",
          "report"
        ]
      },
      "CommentEntityId": {
        "type": "string",
        "format": "uuid"
      },
      "CommentAdditionalIdentifier": {
        "type": "string",
        "format": "uuid"
      },
      "CommentCreatedBefore": {
        "type": "string"
      },
      "IListCommentResponse": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid"
            },
            "company_id": {
              "type": "string",
              "format": "uuid"
            },
            "text": {
              "type": "string",
              "maxLength": 5120
            },
            "title_context": {
              "type": "string",
              "maxLength": 64
            },
            "is_deleted": {
              "type": "boolean",
              "default": false
            },
            "created_by": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "nullable": true
                },
                {
                  "nullable": true
                }
              ]
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "date-time"
                }
              ]
            },
            "updated_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "date-time"
                }
              ]
            },
            "commented_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "date-time"
                }
              ]
            },
            "files": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "comment_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "file_id": {
                    "type": "string"
                  },
                  "file_name": {
                    "type": "string",
                    "maxLength": 128
                  },
                  "created_at": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "string",
                        "format": "date-time"
                      }
                    ]
                  }
                },
                "required": [
                  "comment_id",
                  "file_id",
                  "file_name",
                  "created_at"
                ]
              }
            },
            "user": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "default": "f3fb7d47-4b61-4589-bb91-ceae2bf2a621"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                }
              },
              "required": [
                "name"
              ]
            },
            "entity_id": {
              "type": "string",
              "format": "uuid"
            },
            "entity_type": {
              "type": "string",
              "enum": [
                "workflow",
                "asset",
                "report"
              ]
            },
            "additional_identifier": {
              "type": "string",
              "description": "Used to group comments by an additional context"
            }
          },
          "required": [
            "id",
            "company_id",
            "text",
            "created_by",
            "created_at",
            "updated_at",
            "commented_at",
            "files",
            "user",
            "entity_id",
            "entity_type"
          ]
        }
      },
      "ICreateCommentInput": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 5120
          },
          "title_context": {
            "type": "string",
            "maxLength": 64
          },
          "commented_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "file_id": {
                  "type": "string"
                },
                "file_name": {
                  "type": "string",
                  "maxLength": 128
                }
              },
              "required": [
                "file_id",
                "file_name"
              ]
            },
            "maxItems": 10
          }
        },
        "required": [
          "text",
          "files"
        ]
      },
      "ICommentResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "text": {
            "type": "string",
            "maxLength": 5120
          },
          "title_context": {
            "type": "string",
            "maxLength": 64
          },
          "is_deleted": {
            "type": "boolean",
            "default": false
          },
          "created_by": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "commented_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "comment_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "file_id": {
                  "type": "string"
                },
                "file_name": {
                  "type": "string",
                  "maxLength": 128
                },
                "created_at": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "string",
                      "format": "date-time"
                    }
                  ]
                }
              },
              "required": [
                "comment_id",
                "file_id",
                "file_name",
                "created_at"
              ]
            }
          },
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "default": "77f8dca6-6d8b-408e-b08b-4bc39d0df549"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              }
            },
            "required": [
              "name"
            ]
          },
          "entity_id": {
            "type": "string",
            "format": "uuid"
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "workflow",
              "asset",
              "report"
            ]
          },
          "additional_identifier": {
            "type": "string",
            "description": "Used to group comments by an additional context"
          }
        },
        "required": [
          "id",
          "company_id",
          "text",
          "created_by",
          "created_at",
          "updated_at",
          "commented_at",
          "files",
          "user",
          "entity_id",
          "entity_type"
        ]
      },
      "CommentEntityIds": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "uuid"
        }
      },
      "ICommentCountResponse": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "entity_id": {
              "type": "string",
              "format": "uuid"
            },
            "entity_type": {
              "type": "string",
              "enum": [
                "workflow",
                "asset",
                "report"
              ]
            },
            "count": {
              "type": "number"
            },
            "additional_identifier": {
              "type": "string"
            }
          },
          "required": [
            "entity_id",
            "entity_type",
            "count"
          ]
        }
      },
      "FormSubmissionStatus": {
        "type": "string",
        "enum": [
          "validated",
          "invalidated",
          "pending",
          "submitted",
          "draft"
        ],
        "default": "pending"
      },
      "FormSchemaStatus": {
        "type": "string",
        "enum": [
          "active",
          "archived",
          "draft"
        ]
      },
      "RecordValueDefaultConfigurationFunction": {
        "type": "string",
        "enum": [
          "top",
          "avg",
          "sum"
        ]
      },
      "MeasurementSubjectEntityType": {
        "type": "string",
        "enum": [
          "equipment",
          "device",
          "facility",
          "flow",
          "asset_group"
        ]
      },
      "RecordValueConfigurationFunction": {
        "type": "string",
        "enum": [
          "avg",
          "sum"
        ]
      },
      "BulkAddEstimationMethodToEntitiesRequest": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "example": "SubpartW AGR Method"
            },
            "analytics_library_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "example": "2024-SubpartW"
            },
            "analytics_calculator_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "example": "2024-SubpartW-AcidGasRemovalMethod1"
            },
            "default_asset_values": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "value": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "nullable": true
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "nullable": true
                        }
                      ]
                    },
                    "unit": {
                      "type": "string"
                    },
                    "measurement_type": {
                      "type": "string"
                    },
                    "measurement_quantity": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "value"
                  ]
                },
                "example": {
                  "fuel_type": {
                    "value": "Eastern",
                    "unit": "",
                    "measurement_type": "measurement_type",
                    "measurement_quantity": "dimensionless_coefficient"
                  },
                  "volume": {
                    "value": 5,
                    "unit": "e3m3",
                    "measurement_type": "measurement_type",
                    "measurement_quantity": "volume"
                  },
                  "rvp": null
                }
              },
              "default": {},
              "example": {
                "98eeea2b-ec04-458f-a936-653f1061c861": {
                  "fuel_type": {
                    "value": "Eastern",
                    "unit": "",
                    "measurement_type": "measurement_type",
                    "measurement_quantity": "dimensionless_coefficient"
                  },
                  "volume": {
                    "value": 5,
                    "unit": "e3m3",
                    "measurement_type": "measurement_type",
                    "measurement_quantity": "volume"
                  },
                  "rvp": null
                },
                "5e57efba-65da-4a50-89e0-bb12a8b8af54": {
                  "fuel_type": {
                    "value": "Eastern",
                    "unit": "",
                    "measurement_type": "measurement_type",
                    "measurement_quantity": "dimensionless_coefficient"
                  },
                  "volume": {
                    "value": 5,
                    "unit": "e3m3",
                    "measurement_type": "measurement_type",
                    "measurement_quantity": "volume"
                  },
                  "rvp": null
                },
                "38d6313c-8d40-4716-a682-45eb8e4058b7": null
              }
            },
            "entity_type": {
              "type": "string",
              "enum": [
                "equipment",
                "flow",
                "asset_group"
              ]
            },
            "entity_id": {
              "type": "string",
              "format": "uuid"
            },
            "status": {
              "type": "string",
              "enum": [
                "active",
                "inactive"
              ],
              "default": "active"
            },
            "default_values": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              }
            }
          },
          "required": [
            "name",
            "analytics_library_id",
            "analytics_calculator_id",
            "entity_type",
            "entity_id"
          ]
        }
      },
      "BulkResponseStatus": {
        "type": "string",
        "enum": [
          "success",
          "failed"
        ]
      },
      "EstimationMethodWithEntityInfoResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "analytics_library_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW"
          },
          "analytics_calculator_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW-AcidGasRemovalMethod1"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "SubpartW AGR Method"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ]
          },
          "default_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              }
            }
          },
          "default_asset_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            },
            "example": {
              "a04b4387-5145-4935-9edc-d53ecdb7a6c0": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              },
              "99a45dd3-6ce1-4290-9d16-79415111cc43": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "equipment",
              "flow",
              "asset_group"
            ]
          },
          "entity_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "company_id",
          "asset_id",
          "analytics_library_id",
          "analytics_calculator_id",
          "name",
          "status",
          "default_values",
          "default_asset_values",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by",
          "entity_type",
          "entity_id"
        ]
      },
      "CalculationStatus": {
        "type": "string",
        "enum": [
          "not_configured",
          "missing_inputs",
          "ready_to_run",
          "run",
          "requires_re_run"
        ]
      },
      "BulkItemStatus": {
        "type": "string",
        "enum": [
          "success",
          "failed",
          "skipped"
        ]
      },
      "JobStatus": {
        "type": "string",
        "enum": [
          "started",
          "finished",
          "failed",
          "partial"
        ]
      },
      "JobType": {
        "type": "string",
        "enum": [
          "run_calculation",
          "apply_default_record_configuration",
          "apply_default_calculator_configuration"
        ]
      },
      "Period": {
        "type": "string",
        "pattern": "^(19|20)\\d{2}(0[1-9]|1[0-2])$",
        "default": "202502",
        "example": "202101"
      },
      "EstimationMethodSearchResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "analytics_library_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW"
          },
          "analytics_calculator_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW-AcidGasRemovalMethod1"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "SubpartW AGR Method"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ]
          },
          "default_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              }
            }
          },
          "default_asset_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            },
            "example": {
              "a04b4387-5145-4935-9edc-d53ecdb7a6c0": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              },
              "99a45dd3-6ce1-4290-9d16-79415111cc43": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "equipment",
              "flow",
              "asset_group"
            ]
          },
          "entity_id": {
            "type": "string",
            "format": "uuid"
          },
          "reporting_groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "priority": {
                  "type": "number"
                },
                "id": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "description",
                "priority",
                "id"
              ]
            }
          },
          "flow": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "company_id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "product_category": {
                "type": "string"
              },
              "product_type": {
                "type": "string"
              },
              "custom_attributes": {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "number"
                      }
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "example": {
                  "attribute1": 12345,
                  "attribute2": "value1"
                }
              },
              "upstream_flow_ids": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "downstream_flow_ids": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "upstream_flows_count": {
                "type": "number"
              },
              "downstream_flows_count": {
                "type": "number"
              },
              "upstream_facility_id": {
                "type": "string",
                "format": "uuid"
              },
              "downstream_facility_id": {
                "type": "string",
                "format": "uuid"
              },
              "upstream_equipment_id": {
                "type": "string",
                "format": "uuid"
              },
              "downstream_equipment_id": {
                "type": "string",
                "format": "uuid"
              },
              "associated_facility_id": {
                "type": "string",
                "format": "uuid"
              },
              "associated_equipment_id": {
                "type": "string",
                "format": "uuid"
              },
              "associated_facility": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "company_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  },
                  "custom_attributes": {
                    "type": "object",
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        },
                        {
                          "nullable": true
                        }
                      ]
                    },
                    "example": {
                      "attribute1": 12345,
                      "attribute2": "value1"
                    }
                  },
                  "created_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time"
                      },
                      {
                        "type": "string",
                        "nullable": true
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "updated_at": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time"
                      },
                      {
                        "type": "string",
                        "nullable": true
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "created_by": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "updated_by": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "id",
                  "company_id",
                  "name",
                  "status",
                  "type",
                  "latitude",
                  "longitude",
                  "custom_attributes",
                  "created_at",
                  "updated_at",
                  "created_by",
                  "updated_by"
                ]
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              },
              "updated_by": {
                "type": "string",
                "format": "uuid"
              }
            },
            "required": [
              "id",
              "company_id",
              "name",
              "status",
              "type",
              "product_category",
              "product_type",
              "custom_attributes",
              "upstream_flow_ids",
              "downstream_flow_ids",
              "upstream_flows_count",
              "downstream_flows_count",
              "upstream_facility_id",
              "downstream_facility_id",
              "upstream_equipment_id",
              "downstream_equipment_id",
              "associated_facility_id",
              "associated_equipment_id",
              "associated_facility",
              "created_at",
              "updated_at",
              "created_by",
              "updated_by"
            ]
          },
          "equipment": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "company_id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "type": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name"
                ]
              },
              "effective_date": {
                "type": "string",
                "example": "2021-01-01"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "custom_attributes": {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "number"
                      }
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "example": {
                  "attribute1": 12345,
                  "attribute2": "value1"
                }
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              },
              "updated_by": {
                "type": "string",
                "format": "uuid"
              },
              "facility": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name"
                ]
              }
            },
            "required": [
              "id",
              "company_id",
              "name",
              "status",
              "type",
              "effective_date",
              "latitude",
              "longitude",
              "custom_attributes",
              "created_at",
              "updated_at",
              "created_by",
              "updated_by",
              "facility"
            ]
          }
        },
        "required": [
          "id",
          "company_id",
          "asset_id",
          "analytics_library_id",
          "analytics_calculator_id",
          "name",
          "status",
          "default_values",
          "default_asset_values",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by",
          "entity_type",
          "entity_id",
          "reporting_groups",
          "flow",
          "equipment"
        ]
      },
      "EstimationMethodWithRenamedStatusResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "analytics_library_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW"
          },
          "analytics_calculator_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW-AcidGasRemovalMethod1"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "SubpartW AGR Method"
          },
          "default_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              }
            }
          },
          "default_asset_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            },
            "example": {
              "a04b4387-5145-4935-9edc-d53ecdb7a6c0": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              },
              "99a45dd3-6ce1-4290-9d16-79415111cc43": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "estimation_method_status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ]
          },
          "year_month": {
            "type": "string",
            "pattern": "^(19|20)\\d{2}(0[1-9]|1[0-2])$",
            "example": "202101"
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "equipment",
              "flow",
              "asset_group"
            ]
          },
          "entity_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "company_id",
          "asset_id",
          "analytics_library_id",
          "analytics_calculator_id",
          "name",
          "default_values",
          "default_asset_values",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by",
          "estimation_method_status",
          "year_month",
          "entity_type",
          "entity_id"
        ]
      },
      "AddEstimationMethodToEntityRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "SubpartW AGR Method"
          },
          "analytics_library_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW"
          },
          "analytics_calculator_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW-AcidGasRemovalMethod1"
          },
          "default_asset_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true,
              "additionalProperties": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              }
            },
            "default": {},
            "example": {
              "98eeea2b-ec04-458f-a936-653f1061c861": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              },
              "5e57efba-65da-4a50-89e0-bb12a8b8af54": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              },
              "38d6313c-8d40-4716-a682-45eb8e4058b7": null
            }
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "equipment",
              "flow",
              "asset_group"
            ]
          },
          "entity_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ],
            "default": "active"
          },
          "default_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true,
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              },
              "rvp": null
            }
          }
        },
        "required": [
          "name",
          "analytics_library_id",
          "analytics_calculator_id",
          "entity_type",
          "entity_id"
        ]
      },
      "EstimationMethodEntityType": {
        "type": "string",
        "enum": [
          "equipment",
          "flow",
          "asset_group"
        ]
      },
      "EstimationMethodId": {
        "type": "string",
        "format": "uuid"
      },
      "EstimationMethodWithReportingGroupsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "analytics_library_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW"
          },
          "analytics_calculator_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW-AcidGasRemovalMethod1"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "SubpartW AGR Method"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ]
          },
          "default_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              }
            }
          },
          "default_asset_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            },
            "example": {
              "a04b4387-5145-4935-9edc-d53ecdb7a6c0": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              },
              "99a45dd3-6ce1-4290-9d16-79415111cc43": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "equipment",
              "flow",
              "asset_group"
            ]
          },
          "entity_id": {
            "type": "string",
            "format": "uuid"
          },
          "reporting_groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "priority": {
                  "type": "number"
                },
                "id": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "description",
                "priority",
                "id"
              ]
            }
          }
        },
        "required": [
          "id",
          "company_id",
          "asset_id",
          "analytics_library_id",
          "analytics_calculator_id",
          "name",
          "status",
          "default_values",
          "default_asset_values",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by",
          "entity_type",
          "entity_id",
          "reporting_groups"
        ]
      },
      "UpdateEstimationMethodRequestBody": {
        "type": "object",
        "properties": {
          "default_asset_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true,
              "additionalProperties": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              }
            },
            "example": {
              "98eeea2b-ec04-458f-a936-653f1061c861": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              },
              "5e57efba-65da-4a50-89e0-bb12a8b8af54": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              },
              "38d6313c-8d40-4716-a682-45eb8e4058b7": null
            }
          },
          "delete_configurations_and_results": {
            "type": "boolean",
            "default": false,
            "description": "Delete any existing configurations and results for the estimation method"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "SubpartW AGR Method"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ]
          },
          "default_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true,
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "default": {},
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              },
              "rvp": null
            }
          },
          "start_date": {
            "anyOf": [
              {
                "type": "string",
                "description": "Year month formatted as YYYYMM",
                "example": "202101"
              },
              {
                "type": "string",
                "enum": [
                  "min",
                  "max"
                ],
                "description": "Year month shorthand",
                "example": "min"
              }
            ],
            "description": "Start date of attributes. If start_date is provided and end_date is not provided, it defaults to the range [start_date, max]. If both start_date and end_date are not provided, it defaults to the range [current year month, next existing year month - 1]",
            "example": "202101"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string",
                "description": "Year month formatted as YYYYMM",
                "example": "202101"
              },
              {
                "type": "string",
                "enum": [
                  "min",
                  "max"
                ],
                "description": "Year month shorthand",
                "example": "min"
              }
            ],
            "description": "End date of attributes. If end_date is provided and start_date is not provided, it defaults to the range [min, start_date]. If both start_date and end_date are not provided, it defaults to the range [current year month, next existing year month - 1]",
            "example": "202112"
          }
        },
        "additionalProperties": false
      },
      "UpdateEstimationMethodResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "asset_id": {
            "type": "string",
            "format": "uuid"
          },
          "analytics_library_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW"
          },
          "analytics_calculator_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "2024-SubpartW-AcidGasRemovalMethod1"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "SubpartW AGR Method"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ]
          },
          "default_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              }
            }
          },
          "default_asset_values": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            },
            "example": {
              "a04b4387-5145-4935-9edc-d53ecdb7a6c0": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              },
              "99a45dd3-6ce1-4290-9d16-79415111cc43": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "equipment",
              "flow",
              "asset_group"
            ]
          },
          "entity_id": {
            "type": "string",
            "format": "uuid"
          },
          "start_date": {
            "type": "string",
            "description": "Year month formatted as YYYYMM",
            "example": "202101"
          },
          "end_date": {
            "type": "string",
            "description": "Year month formatted as YYYYMM",
            "example": "202101"
          }
        },
        "required": [
          "id",
          "company_id",
          "asset_id",
          "analytics_library_id",
          "analytics_calculator_id",
          "name",
          "status",
          "default_values",
          "default_asset_values",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by",
          "entity_type",
          "entity_id",
          "start_date",
          "end_date"
        ],
        "additionalProperties": false
      },
      "SetCalculatorConfigurationRequestBody": {
        "type": "object",
        "properties": {
          "calculator_version": {
            "type": "string",
            "example": "V1"
          },
          "inputs": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true,
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ],
              "additionalProperties": false
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              },
              "rvp": null
            }
          },
          "asset_inputs": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true,
              "additionalProperties": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ],
                "additionalProperties": false
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              }
            },
            "example": {
              "2e98b207-b912-4c52-bdb1-5a58a7f758e2": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              },
              "3d5dec96-bbe9-42d9-9608-d291c10de1cc": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                },
                "rvp": null
              },
              "840cd887-8693-44d5-8116-f11bba5516cc": null
            }
          }
        },
        "additionalProperties": false
      },
      "YearMonth": {
        "type": "string"
      },
      "ApplyDefaultsEstimationMethodConfigurationResponse": {
        "type": "object",
        "properties": {
          "estimation_method_id": {
            "type": "string",
            "format": "uuid"
          },
          "inputs": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "nullable": true
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_quantity": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ]
            },
            "example": {
              "fuel_type": {
                "value": "Eastern",
                "unit": "",
                "measurement_type": "measurement_type",
                "measurement_quantity": "dimensionless_coefficient"
              },
              "volume": {
                "value": 5,
                "unit": "e3m3",
                "measurement_type": "measurement_type",
                "measurement_quantity": "volume"
              }
            }
          },
          "asset_inputs": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "nullable": true
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "nullable": true
                      }
                    ]
                  },
                  "unit": {
                    "type": "string"
                  },
                  "measurement_type": {
                    "type": "string"
                  },
                  "measurement_quantity": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ]
              },
              "example": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            },
            "example": {
              "a04b4387-5145-4935-9edc-d53ecdb7a6c0": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              },
              "99a45dd3-6ce1-4290-9d16-79415111cc43": {
                "fuel_type": {
                  "value": "Eastern",
                  "unit": "",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "dimensionless_coefficient"
                },
                "volume": {
                  "value": 5,
                  "unit": "e3m3",
                  "measurement_type": "measurement_type",
                  "measurement_quantity": "volume"
                }
              }
            }
          },
          "calculator_version": {
            "type": "string",
            "example": "V1"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "estimation_method_id",
          "inputs",
          "asset_inputs",
          "calculator_version",
          "company_id",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by"
        ],
        "additionalProperties": false
      },
      "EventStatus": {
        "type": "string",
        "enum": [
          "open",
          "resolved",
          "overdue",
          "dismissed"
        ]
      },
      "EventClassification": {
        "type": "string",
        "enum": [
          "planned",
          "unplanned"
        ]
      },
      "AttributeTypes": {
        "type": "string",
        "enum": [
          "number",
          "string",
          "geo_point",
          "boolean",
          "integer",
          "pick-list",
          "multi-pick-list",
          "number-array",
          "lookup",
          "date",
          "date-time",
          "file"
        ]
      },
      "schemas-CustomAttributeEntityType": {
        "type": "string",
        "enum": [
          "equipment",
          "device",
          "facility",
          "flow",
          "asset_group"
        ]
      },
      "DeviceStatus": {
        "default": "active",
        "type": "string",
        "enum": [
          "active",
          "archived"
        ]
      },
      "JsonSchemaTypes": {
        "type": "string",
        "nullable": true,
        "enum": [
          "boolean",
          "number",
          "integer",
          "string",
          "object",
          "array"
        ]
      },
      "LedgerEntryStatus": {
        "type": "string",
        "enum": [
          "active",
          "retired",
          "removed"
        ]
      },
      "CreditOwnerVisibility": {
        "type": "string",
        "enum": [
          "public",
          "private"
        ]
      },
      "ProjectGroupStatus": {
        "type": "string",
        "enum": [
          "active",
          "closed"
        ]
      },
      "ReportId": {
        "type": "string",
        "format": "uuid"
      },
      "TriggerReportRequestBody": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^[a-zA-Z0-9 \\-_]*$"
          },
          "templated_report_name": {
            "type": "string"
          },
          "input": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "User input for a templated report based on the input schema for the desired templated report.",
            "example": {
              "year_month": 202201,
              "reporting_group_id": "bc37cb31-08ce-4b22-8f4c-7d44692a4ef2",
              "asset_id": "89c100dc-0401-447f-a9f5-72ae124f3244"
            }
          }
        },
        "required": [
          "name",
          "templated_report_name"
        ],
        "additionalProperties": false
      },
      "ReportWithTemplatedReportAndLatestVersionResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 128
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "locked",
              "unlocked",
              "archived"
            ]
          },
          "templated_report_name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^\\w+$"
          },
          "input": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "User input for a templated report based on the input schema for the desired templated report.",
            "example": {
              "year_month": 202201,
              "reporting_group_id": "bc37cb31-08ce-4b22-8f4c-7d44692a4ef2",
              "asset_id": "89c100dc-0401-447f-a9f5-72ae124f3244"
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "templated_report": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64,
                "pattern": "^\\w+$"
              },
              "display_name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "archived"
                ],
                "default": "active"
              },
              "input_schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "display_name": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64
                    },
                    "data_type": {
                      "type": "string",
                      "enum": [
                        "boolean",
                        "number",
                        "integer",
                        "pick-list",
                        "multi-pick-list",
                        "string",
                        "geo_point",
                        "number-array",
                        "lookup",
                        "date",
                        "date-time",
                        "date-time-range",
                        "file"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 256
                    },
                    "is_required": {
                      "type": "boolean"
                    },
                    "lookup_entity_type": {
                      "type": "string",
                      "enum": [
                        "equipment",
                        "device",
                        "facility",
                        "flow",
                        "asset_group",
                        "form_schema"
                      ]
                    },
                    "lookup_entity_attribute": {
                      "type": "string"
                    },
                    "pick_list_values": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "order": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "display_name",
                    "data_type",
                    "description",
                    "is_required"
                  ],
                  "additionalProperties": false
                },
                "default": {}
              },
              "is_embedded": {
                "type": "boolean",
                "default": false
              },
              "use_data_layer_v2": {
                "type": "boolean",
                "default": false
              },
              "description": {
                "type": "string",
                "maxLength": 256
              },
              "deduplication_columns": {
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9_]+$"
                  },
                  "maxItems": 20
                }
              },
              "row_styling_headers": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_]+$"
                }
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              }
            },
            "required": [
              "name",
              "display_name",
              "created_at",
              "updated_at"
            ]
          },
          "latest_version": {
            "type": "object",
            "properties": {
              "version": {
                "type": "integer"
              },
              "status": {
                "type": "string",
                "enum": [
                  "exporting",
                  "failed",
                  "success"
                ]
              },
              "row_styling_headers": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_]+$"
                }
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              }
            },
            "required": [
              "version",
              "status",
              "created_at",
              "created_by"
            ]
          },
          "s3_download_link": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "company_id",
          "status",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by",
          "latest_version"
        ],
        "additionalProperties": false
      },
      "GetExistingReportInputsResponse": {
        "type": "object",
        "additionalProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "example": {
          "input_1": [
            "value 1",
            "value 2"
          ],
          "input_2": [
            "value 3",
            "value 4"
          ]
        }
      },
      "ReportWithTemplatedReportAndVersionsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 128
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "locked",
              "unlocked",
              "archived"
            ]
          },
          "templated_report_name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^\\w+$"
          },
          "input": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "User input for a templated report based on the input schema for the desired templated report.",
            "example": {
              "year_month": 202201,
              "reporting_group_id": "bc37cb31-08ce-4b22-8f4c-7d44692a4ef2",
              "asset_id": "89c100dc-0401-447f-a9f5-72ae124f3244"
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "templated_report": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64,
                "pattern": "^\\w+$"
              },
              "display_name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "archived"
                ],
                "default": "active"
              },
              "input_schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "display_name": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64
                    },
                    "data_type": {
                      "type": "string",
                      "enum": [
                        "boolean",
                        "number",
                        "integer",
                        "pick-list",
                        "multi-pick-list",
                        "string",
                        "geo_point",
                        "number-array",
                        "lookup",
                        "date",
                        "date-time",
                        "date-time-range",
                        "file"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 256
                    },
                    "is_required": {
                      "type": "boolean"
                    },
                    "lookup_entity_type": {
                      "type": "string",
                      "enum": [
                        "equipment",
                        "device",
                        "facility",
                        "flow",
                        "asset_group",
                        "form_schema"
                      ]
                    },
                    "lookup_entity_attribute": {
                      "type": "string"
                    },
                    "pick_list_values": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "order": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "display_name",
                    "data_type",
                    "description",
                    "is_required"
                  ],
                  "additionalProperties": false
                },
                "default": {}
              },
              "is_embedded": {
                "type": "boolean",
                "default": false
              },
              "use_data_layer_v2": {
                "type": "boolean",
                "default": false
              },
              "description": {
                "type": "string",
                "maxLength": 256
              },
              "deduplication_columns": {
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9_]+$"
                  },
                  "maxItems": 20
                }
              },
              "row_styling_headers": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_]+$"
                }
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              }
            },
            "required": [
              "name",
              "display_name",
              "created_at",
              "updated_at"
            ]
          },
          "versions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "report_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "version": {
                  "type": "integer"
                },
                "is_current": {
                  "type": "boolean"
                },
                "s3_object_id": {
                  "type": "string"
                },
                "definition_version": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "exporting",
                    "failed",
                    "success"
                  ]
                },
                "row_styling_headers": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9_]+$"
                  }
                },
                "created_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time"
                    },
                    {
                      "type": "string",
                      "nullable": true
                    },
                    {
                      "nullable": true
                    }
                  ]
                },
                "created_by": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "required": [
                "report_id",
                "version",
                "is_current",
                "status",
                "created_at",
                "created_by"
              ]
            }
          }
        },
        "required": [
          "id",
          "name",
          "company_id",
          "status",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by",
          "versions"
        ],
        "additionalProperties": false
      },
      "ReportVersion": {
        "type": "object",
        "properties": {
          "report_id": {
            "type": "string",
            "format": "uuid"
          },
          "version": {
            "type": "integer"
          },
          "is_current": {
            "type": "boolean"
          },
          "s3_object_id": {
            "type": "string"
          },
          "definition_version": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "exporting",
              "failed",
              "success"
            ]
          },
          "row_styling_headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "minLength": 3,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9_]+$"
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "report_id",
          "version",
          "is_current",
          "status",
          "created_at",
          "created_by"
        ]
      },
      "ReportWithTemplatedReportAndVersionResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 128
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "locked",
              "unlocked",
              "archived"
            ]
          },
          "templated_report_name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^\\w+$"
          },
          "input": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "User input for a templated report based on the input schema for the desired templated report.",
            "example": {
              "year_month": 202201,
              "reporting_group_id": "bc37cb31-08ce-4b22-8f4c-7d44692a4ef2",
              "asset_id": "89c100dc-0401-447f-a9f5-72ae124f3244"
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          },
          "templated_report": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64,
                "pattern": "^\\w+$"
              },
              "display_name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "archived"
                ],
                "default": "active"
              },
              "input_schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "display_name": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 64
                    },
                    "data_type": {
                      "type": "string",
                      "enum": [
                        "boolean",
                        "number",
                        "integer",
                        "pick-list",
                        "multi-pick-list",
                        "string",
                        "geo_point",
                        "number-array",
                        "lookup",
                        "date",
                        "date-time",
                        "date-time-range",
                        "file"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 256
                    },
                    "is_required": {
                      "type": "boolean"
                    },
                    "lookup_entity_type": {
                      "type": "string",
                      "enum": [
                        "equipment",
                        "device",
                        "facility",
                        "flow",
                        "asset_group",
                        "form_schema"
                      ]
                    },
                    "lookup_entity_attribute": {
                      "type": "string"
                    },
                    "pick_list_values": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "order": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "display_name",
                    "data_type",
                    "description",
                    "is_required"
                  ],
                  "additionalProperties": false
                },
                "default": {}
              },
              "is_embedded": {
                "type": "boolean",
                "default": false
              },
              "use_data_layer_v2": {
                "type": "boolean",
                "default": false
              },
              "description": {
                "type": "string",
                "maxLength": 256
              },
              "deduplication_columns": {
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9_]+$"
                  },
                  "maxItems": 20
                }
              },
              "row_styling_headers": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_]+$"
                }
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              }
            },
            "required": [
              "name",
              "display_name",
              "created_at",
              "updated_at"
            ]
          },
          "version": {
            "type": "object",
            "properties": {
              "report_id": {
                "type": "string",
                "format": "uuid"
              },
              "version": {
                "type": "integer"
              },
              "is_current": {
                "type": "boolean"
              },
              "s3_object_id": {
                "type": "string"
              },
              "definition_version": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "exporting",
                  "failed",
                  "success"
                ]
              },
              "row_styling_headers": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9_]+$"
                }
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "string",
                    "nullable": true
                  },
                  {
                    "nullable": true
                  }
                ]
              },
              "created_by": {
                "type": "string",
                "format": "uuid"
              }
            },
            "required": [
              "report_id",
              "version",
              "is_current",
              "status",
              "created_at",
              "created_by"
            ]
          },
          "s3_download_link": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "company_id",
          "status",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by",
          "version"
        ],
        "additionalProperties": false
      },
      "EmbeddedReportSheetResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "position": {
            "type": "integer"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "display_name": {
                  "type": "string"
                },
                "position": {
                  "type": "integer"
                },
                "measurement_type": {
                  "type": "string"
                },
                "measurement_unit": {
                  "type": "string"
                }
              },
              "required": [
                "position"
              ]
            }
          }
        },
        "required": [
          "name",
          "display_name",
          "position",
          "headers"
        ],
        "additionalProperties": false
      },
      "SearchEmbeddedReportRowsRequestFilter": {
        "type": "object",
        "properties": {
          "report_version": {
            "type": "integer"
          },
          "sheet_name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "EmbeddedReportRowResponse": {
        "type": "object",
        "properties": {
          "row_id": {
            "type": "string",
            "format": "uuid"
          },
          "cells": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "value": {
                  "type": "string"
                },
                "style": {
                  "type": "string"
                }
              },
              "required": [
                "value"
              ],
              "additionalProperties": false
            },
            "example": {
              "header_a": {
                "value": "1",
                "style": "success"
              },
              "header_b": {
                "value": "2",
                "style": "error"
              }
            }
          }
        },
        "required": [
          "row_id",
          "cells"
        ],
        "additionalProperties": false
      },
      "TemplatedReportResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^\\w+$"
          },
          "display_name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "archived"
            ],
            "default": "active"
          },
          "input_schema": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "display_name": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 64
                },
                "data_type": {
                  "type": "string",
                  "enum": [
                    "boolean",
                    "number",
                    "integer",
                    "pick-list",
                    "multi-pick-list",
                    "string",
                    "geo_point",
                    "number-array",
                    "lookup",
                    "date",
                    "date-time",
                    "date-time-range",
                    "file"
                  ]
                },
                "description": {
                  "type": "string",
                  "maxLength": 256
                },
                "is_required": {
                  "type": "boolean"
                },
                "lookup_entity_type": {
                  "type": "string",
                  "enum": [
                    "equipment",
                    "device",
                    "facility",
                    "flow",
                    "asset_group",
                    "form_schema"
                  ]
                },
                "lookup_entity_attribute": {
                  "type": "string"
                },
                "pick_list_values": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "order": {
                  "type": "integer"
                }
              },
              "required": [
                "display_name",
                "data_type",
                "description",
                "is_required"
              ],
              "additionalProperties": false
            },
            "default": {}
          },
          "is_embedded": {
            "type": "boolean",
            "default": false
          },
          "use_data_layer_v2": {
            "type": "boolean",
            "default": false
          },
          "description": {
            "type": "string",
            "maxLength": 256
          },
          "deduplication_columns": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64,
                "pattern": "^[A-Za-z0-9_]+$"
              },
              "maxItems": 20
            }
          },
          "row_styling_headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "minLength": 3,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9_]+$"
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          }
        },
        "required": [
          "name",
          "display_name",
          "created_at",
          "updated_at"
        ]
      },
      "TemplatedReportWithCategoryResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^\\w+$"
          },
          "display_name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "archived"
            ],
            "default": "active"
          },
          "input_schema": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "display_name": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 64
                },
                "data_type": {
                  "type": "string",
                  "enum": [
                    "boolean",
                    "number",
                    "integer",
                    "pick-list",
                    "multi-pick-list",
                    "string",
                    "geo_point",
                    "number-array",
                    "lookup",
                    "date",
                    "date-time",
                    "date-time-range",
                    "file"
                  ]
                },
                "description": {
                  "type": "string",
                  "maxLength": 256
                },
                "is_required": {
                  "type": "boolean"
                },
                "lookup_entity_type": {
                  "type": "string",
                  "enum": [
                    "equipment",
                    "device",
                    "facility",
                    "flow",
                    "asset_group",
                    "form_schema"
                  ]
                },
                "lookup_entity_attribute": {
                  "type": "string"
                },
                "pick_list_values": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "order": {
                  "type": "integer"
                }
              },
              "required": [
                "display_name",
                "data_type",
                "description",
                "is_required"
              ],
              "additionalProperties": false
            },
            "default": {}
          },
          "is_embedded": {
            "type": "boolean",
            "default": false
          },
          "use_data_layer_v2": {
            "type": "boolean",
            "default": false
          },
          "description": {
            "type": "string",
            "maxLength": 256
          },
          "deduplication_columns": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64,
                "pattern": "^[A-Za-z0-9_]+$"
              },
              "maxItems": 20
            }
          },
          "row_styling_headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "minLength": 3,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9_]+$"
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "category": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string",
                "minLength": 3,
                "maxLength": 64,
                "pattern": "^[a-zA-Z0-9 \\-_]*$"
              }
            }
          }
        },
        "required": [
          "name",
          "display_name",
          "created_at",
          "updated_at",
          "category"
        ]
      },
      "AddTemplatedReportCompanyRequestBody": {
        "type": "object",
        "properties": {
          "category_id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "category_id"
        ],
        "additionalProperties": false
      },
      "CreateTemplatedReportCategoryRequestBody": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^[a-zA-Z0-9 \\-_]*$"
          },
          "description": {
            "type": "string",
            "maxLength": 256
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "TemplatedReportCategoryResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^[a-zA-Z0-9 \\-_]*$"
          },
          "company_id": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "maxLength": 256
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "string",
                "nullable": true
              },
              {
                "nullable": true
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "name",
          "company_id",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by"
        ]
      },
      "TemplatedReportCategoryId": {
        "type": "string",
        "format": "uuid"
      },
      "UpdateTemplatedReportCategoryRequestBody": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64,
            "pattern": "^[a-zA-Z0-9 \\-_]*$"
          },
          "description": {
            "type": "string",
            "maxLength": 256
          }
        },
        "additionalProperties": false
      },
      "CalculatorVersionInformationField": {
        "type": "string",
        "enum": [
          "assets",
          "calculation_parameters",
          "documentation",
          "intermediate_results",
          "outputs",
          "defaults"
        ]
      },
      "RecordValueStatusType": {
        "type": "string",
        "enum": [
          "locked",
          "unlocked"
        ]
      },
      "IWorkflowCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "company_id",
          "name",
          "description",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by"
        ]
      },
      "ICreateWorkflowCategoryInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "description"
        ]
      },
      "IUpdateWorkflowCategoryInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "ICreateWorkflowTemplateInput": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "description": {
                "type": "string",
                "maxLength": 1024
              },
              "version": {
                "type": "integer"
              },
              "status": {
                "type": "string",
                "enum": [
                  "archive",
                  "draft",
                  "active"
                ]
              },
              "category_id": {
                "type": "string",
                "format": "uuid"
              },
              "config": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "steps": {
                    "type": "object",
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "system_action"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "maxLength": 256
                            },
                            "description": {
                              "type": "string",
                              "maxLength": 1024
                            },
                            "next": {
                              "type": "string"
                            },
                            "end": {
                              "type": "boolean"
                            },
                            "task": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "create_event"
                                      ]
                                    },
                                    "event_schema_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "event_status": {
                                      "type": "string",
                                      "enum": [
                                        "open",
                                        "resolved",
                                        "overdue",
                                        "dismissed"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "event_schema_id",
                                    "event_status"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "form_choice"
                                      ]
                                    },
                                    "form_schema_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "choices": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "answer_filter": {
                                            "type": "object",
                                            "additionalProperties": {
                                              "nullable": true
                                            },
                                            "description": "an array of answer filters is similar to an and operation which will match answers with a common section_id and section_index. filter must contain question_id and answer to make the condition meaningful"
                                          },
                                          "next": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "answer_filter",
                                          "next"
                                        ]
                                      },
                                      "minItems": 1,
                                      "maxItems": 8
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "form_schema_id",
                                    "choices"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "delay"
                                      ]
                                    },
                                    "time_period": {
                                      "type": "string",
                                      "enum": [
                                        "hours",
                                        "days",
                                        "weeks",
                                        "months"
                                      ]
                                    },
                                    "duration": {
                                      "type": "number",
                                      "minimum": 0,
                                      "exclusiveMinimum": true
                                    },
                                    "from": {
                                      "type": "string",
                                      "enum": [
                                        "now",
                                        "previous_workflow"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "time_period",
                                    "duration"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "create_form"
                                      ]
                                    },
                                    "form_schema_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "form_status": {
                                      "type": "string",
                                      "enum": [
                                        "validated",
                                        "invalidated",
                                        "pending",
                                        "submitted",
                                        "draft"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "form_schema_id",
                                    "form_status"
                                  ]
                                }
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "name",
                            "task"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "user_task"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "maxLength": 256
                            },
                            "description": {
                              "type": "string",
                              "maxLength": 1024
                            },
                            "next": {
                              "type": "string"
                            },
                            "end": {
                              "type": "boolean"
                            },
                            "task": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "manual_task"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "submit_form"
                                      ]
                                    },
                                    "form_schema_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "autocomplete": {
                                      "type": "boolean",
                                      "description": "Completes workflow as soon as a form is associated to task. Defaults to false"
                                    },
                                    "auto_attach": {
                                      "type": "boolean",
                                      "description": "Will automatically attach any workflow that matches the schema + asset to this open task"
                                    },
                                    "form_required": {
                                      "type": "boolean",
                                      "description": "Lock task from completion if they do not have a form associated"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "form_schema_id"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "complete_event"
                                      ]
                                    },
                                    "event_step_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "event_step_id"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "choice"
                                      ]
                                    },
                                    "choices": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 64
                                          },
                                          "name": {
                                            "type": "string",
                                            "maxLength": 256
                                          },
                                          "description": {
                                            "type": "string",
                                            "maxLength": 1024
                                          },
                                          "next": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "id",
                                          "name",
                                          "description",
                                          "next"
                                        ]
                                      },
                                      "minItems": 2,
                                      "maxItems": 10
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "choices"
                                  ]
                                }
                              ]
                            },
                            "is_dismissible": {
                              "type": "boolean",
                              "description": "Determines whether a workflow task can be dismissed. Defaults to false"
                            },
                            "assignment_filter": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "object",
                                  "properties": {
                                    "assignee_user": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "assignee_group": {
                                      "type": "string",
                                      "format": "uuid"
                                    }
                                  }
                                }
                              }
                            },
                            "due_date": {
                              "type": "object",
                              "properties": {
                                "time_period": {
                                  "type": "string",
                                  "enum": [
                                    "hours",
                                    "days",
                                    "weeks",
                                    "months"
                                  ]
                                },
                                "duration": {
                                  "type": "number",
                                  "minimum": 0,
                                  "exclusiveMinimum": true
                                }
                              },
                              "required": [
                                "time_period",
                                "duration"
                              ]
                            },
                            "restrict_assignee_completion": {
                              "type": "boolean"
                            },
                            "assignee_user": {
                              "type": "string",
                              "format": "uuid"
                            },
                            "assignee_group": {
                              "type": "string",
                              "format": "uuid"
                            }
                          },
                          "required": [
                            "type",
                            "name",
                            "description",
                            "task"
                          ]
                        }
                      ]
                    }
                  },
                  "workflow_name": {
                    "type": "string"
                  },
                  "workflow_description": {
                    "type": "string"
                  }
                },
                "required": [
                  "start",
                  "steps"
                ]
              },
              "triggers": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "scheduled"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "cron": {
                          "type": "string",
                          "description": "https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents-expressions.html",
                          "example": "0 8 * * ? *"
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "form_submission_create"
                          ]
                        },
                        "form_schema_id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "answer_filter": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "submission_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "section_id": {
                                  "type": "string"
                                },
                                "question_index": {
                                  "type": "integer"
                                },
                                "question_id": {
                                  "type": "string"
                                },
                                "answer.value": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "nullable": true
                                    },
                                    {
                                      "nullable": true
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "question_id"
                              ]
                            },
                            {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "format": "uuid"
                                  },
                                  "submission_id": {
                                    "type": "string",
                                    "format": "uuid"
                                  },
                                  "section_id": {
                                    "type": "string"
                                  },
                                  "question_index": {
                                    "type": "integer"
                                  },
                                  "question_id": {
                                    "type": "string"
                                  },
                                  "answer.value": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "nullable": true
                                      },
                                      {
                                        "nullable": true
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "question_id"
                                ]
                              }
                            }
                          ]
                        }
                      },
                      "required": [
                        "type",
                        "event",
                        "form_schema_id"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "asset_create"
                          ]
                        },
                        "asset_type": {
                          "type": "string",
                          "enum": [
                            "asset_group",
                            "facility",
                            "equipment",
                            "device",
                            "flow"
                          ]
                        },
                        "asset_filter": {
                          "type": "object",
                          "additionalProperties": {
                            "nullable": true
                          }
                        }
                      },
                      "required": [
                        "type",
                        "event",
                        "asset_type",
                        "asset_filter"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "asset_update"
                          ]
                        },
                        "asset_type": {
                          "type": "string",
                          "enum": [
                            "asset_group",
                            "facility",
                            "equipment",
                            "device",
                            "flow"
                          ]
                        },
                        "asset_filter": {
                          "type": "object",
                          "additionalProperties": {
                            "nullable": true
                          }
                        },
                        "attributes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        }
                      },
                      "required": [
                        "type",
                        "event",
                        "asset_type",
                        "asset_filter"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "workflow_complete"
                          ]
                        },
                        "workflow_template_id": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "required": [
                        "type",
                        "event",
                        "workflow_template_id"
                      ]
                    }
                  ],
                  "example": {
                    "type": "system",
                    "event": "asset_create",
                    "asset_type": "equipment",
                    "due_date": {
                      "time_period": "hours",
                      "duration": 0
                    },
                    "asset_filter": {
                      "type": "acid_gas_removal",
                      "custom_attributes.attribute1": 12345,
                      "facility_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                    }
                  }
                }
              },
              "output": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "asset_type": {
                "type": "string",
                "enum": [
                  "asset_group",
                  "facility",
                  "equipment",
                  "device",
                  "flow"
                ]
              },
              "asset_filter": {
                "type": "object",
                "additionalProperties": {
                  "nullable": true
                }
              },
              "workflow_owner_id": {
                "type": "string",
                "format": "uuid"
              }
            },
            "required": [
              "name",
              "description",
              "version",
              "status",
              "category_id",
              "config",
              "triggers",
              "output",
              "asset_type",
              "asset_filter",
              "workflow_owner_id"
            ]
          },
          {
            "type": "object",
            "properties": {
              "workflow_notifications": {
                "type": "object",
                "properties": {
                  "events": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "created"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "status_changed"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "deleted"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "upcoming_due_date"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      ]
                    }
                  },
                  "recipients": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "owner"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "all_assignees"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "users"
                              ]
                            },
                            "users": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "maxItems": 20
                            }
                          },
                          "required": [
                            "type",
                            "users"
                          ]
                        }
                      ]
                    }
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "email"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  }
                },
                "required": [
                  "events",
                  "recipients",
                  "channels"
                ]
              },
              "workflow_task_notifications": {
                "type": "object",
                "properties": {
                  "events": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "created"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "status_changed"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "assignee_changed"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      ]
                    }
                  },
                  "recipients": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "workflow_owner"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "assignee"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "assignee_user"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "assignee_group"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "users"
                              ]
                            },
                            "users": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "maxItems": 20
                            }
                          },
                          "required": [
                            "type",
                            "users"
                          ]
                        }
                      ]
                    }
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "email"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  },
                  "input": {
                    "type": "object",
                    "properties": {
                      "$.description": {
                        "type": "string"
                      }
                    }
                  },
                  "step_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "task_status": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "open",
                        "complete",
                        "dismissed",
                        "overdue"
                      ]
                    }
                  }
                },
                "required": [
                  "events",
                  "recipients",
                  "channels"
                ]
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "facility_filter": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "nullable": true
                }
              }
            }
          }
        ]
      },
      "IWorkflowTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "category_id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "description": {
            "type": "string",
            "maxLength": 1024
          },
          "version": {
            "type": "integer"
          },
          "status": {
            "type": "string",
            "enum": [
              "archive",
              "draft",
              "active"
            ]
          },
          "triggers": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "scheduled"
                      ]
                    },
                    "due_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        },
                        "start_variable": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "notification_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "output": {
                      "type": "object",
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^\\$.*$",
                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                            "example": "$.answers.section1[0].question_leak.value"
                          },
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^(?!\\$).*$",
                            "description": "static value ​​cannot start with $",
                            "example": "foo"
                          }
                        ]
                      },
                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                      "example": {
                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                        "$FOO": "bar"
                      }
                    },
                    "cron": {
                      "type": "string",
                      "description": "https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents-expressions.html",
                      "example": "0 8 * * ? *"
                    }
                  },
                  "required": [
                    "type"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "system"
                      ]
                    },
                    "due_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        },
                        "start_variable": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "notification_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "output": {
                      "type": "object",
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^\\$.*$",
                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                            "example": "$.answers.section1[0].question_leak.value"
                          },
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^(?!\\$).*$",
                            "description": "static value ​​cannot start with $",
                            "example": "foo"
                          }
                        ]
                      },
                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                      "example": {
                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                        "$FOO": "bar"
                      }
                    },
                    "event": {
                      "type": "string",
                      "enum": [
                        "form_submission_create"
                      ]
                    },
                    "form_schema_id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "answer_filter": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "format": "uuid"
                            },
                            "submission_id": {
                              "type": "string",
                              "format": "uuid"
                            },
                            "section_id": {
                              "type": "string"
                            },
                            "question_index": {
                              "type": "integer"
                            },
                            "question_id": {
                              "type": "string"
                            },
                            "answer.value": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "number"
                                },
                                {
                                  "nullable": true
                                },
                                {
                                  "nullable": true
                                }
                              ]
                            }
                          },
                          "required": [
                            "question_id"
                          ]
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "submission_id": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "section_id": {
                                "type": "string"
                              },
                              "question_index": {
                                "type": "integer"
                              },
                              "question_id": {
                                "type": "string"
                              },
                              "answer.value": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "nullable": true
                                  },
                                  {
                                    "nullable": true
                                  }
                                ]
                              }
                            },
                            "required": [
                              "question_id"
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "event",
                    "form_schema_id"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "system"
                      ]
                    },
                    "due_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        },
                        "start_variable": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "notification_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "output": {
                      "type": "object",
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^\\$.*$",
                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                            "example": "$.answers.section1[0].question_leak.value"
                          },
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^(?!\\$).*$",
                            "description": "static value ​​cannot start with $",
                            "example": "foo"
                          }
                        ]
                      },
                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                      "example": {
                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                        "$FOO": "bar"
                      }
                    },
                    "event": {
                      "type": "string",
                      "enum": [
                        "asset_create"
                      ]
                    },
                    "asset_type": {
                      "type": "string",
                      "enum": [
                        "asset_group",
                        "facility",
                        "equipment",
                        "device",
                        "flow"
                      ]
                    },
                    "asset_filter": {
                      "type": "object",
                      "additionalProperties": {
                        "nullable": true
                      }
                    }
                  },
                  "required": [
                    "type",
                    "event",
                    "asset_type",
                    "asset_filter"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "system"
                      ]
                    },
                    "due_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        },
                        "start_variable": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "notification_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "output": {
                      "type": "object",
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^\\$.*$",
                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                            "example": "$.answers.section1[0].question_leak.value"
                          },
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^(?!\\$).*$",
                            "description": "static value ​​cannot start with $",
                            "example": "foo"
                          }
                        ]
                      },
                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                      "example": {
                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                        "$FOO": "bar"
                      }
                    },
                    "event": {
                      "type": "string",
                      "enum": [
                        "asset_update"
                      ]
                    },
                    "asset_type": {
                      "type": "string",
                      "enum": [
                        "asset_group",
                        "facility",
                        "equipment",
                        "device",
                        "flow"
                      ]
                    },
                    "asset_filter": {
                      "type": "object",
                      "additionalProperties": {
                        "nullable": true
                      }
                    },
                    "attributes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "default": []
                    }
                  },
                  "required": [
                    "type",
                    "event",
                    "asset_type",
                    "asset_filter"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "system"
                      ]
                    },
                    "due_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        },
                        "start_variable": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "notification_date": {
                      "type": "object",
                      "properties": {
                        "time_period": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days",
                            "weeks",
                            "months"
                          ]
                        },
                        "duration": {
                          "type": "number",
                          "minimum": 0,
                          "exclusiveMinimum": true
                        }
                      },
                      "required": [
                        "time_period",
                        "duration"
                      ]
                    },
                    "output": {
                      "type": "object",
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^\\$.*$",
                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                            "example": "$.answers.section1[0].question_leak.value"
                          },
                          {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024,
                            "pattern": "^(?!\\$).*$",
                            "description": "static value ​​cannot start with $",
                            "example": "foo"
                          }
                        ]
                      },
                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                      "example": {
                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                        "$FOO": "bar"
                      }
                    },
                    "event": {
                      "type": "string",
                      "enum": [
                        "workflow_complete"
                      ]
                    },
                    "workflow_template_id": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "type",
                    "event",
                    "workflow_template_id"
                  ]
                }
              ],
              "example": {
                "type": "system",
                "event": "asset_create",
                "asset_type": "equipment",
                "due_date": {
                  "time_period": "hours",
                  "duration": 0
                },
                "asset_filter": {
                  "type": "acid_gas_removal",
                  "custom_attributes.attribute1": 12345,
                  "facility_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                }
              }
            }
          },
          "config": {
            "type": "object",
            "properties": {
              "start": {
                "type": "string"
              },
              "steps": {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system_action"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 256
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 1024
                        },
                        "next": {
                          "type": "string"
                        },
                        "end": {
                          "type": "boolean"
                        },
                        "task": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "create_event"
                                  ]
                                },
                                "event_schema_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "event_status": {
                                  "type": "string",
                                  "enum": [
                                    "open",
                                    "resolved",
                                    "overdue",
                                    "dismissed"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "event_schema_id",
                                "event_status"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "form_choice"
                                  ]
                                },
                                "form_schema_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "choices": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "answer_filter": {
                                        "type": "object",
                                        "additionalProperties": {
                                          "nullable": true
                                        },
                                        "description": "an array of answer filters is similar to an and operation which will match answers with a common section_id and section_index. filter must contain question_id and answer to make the condition meaningful"
                                      },
                                      "next": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "answer_filter",
                                      "next"
                                    ]
                                  },
                                  "minItems": 1,
                                  "maxItems": 8
                                }
                              },
                              "required": [
                                "type",
                                "form_schema_id",
                                "choices"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "delay"
                                  ]
                                },
                                "time_period": {
                                  "type": "string",
                                  "enum": [
                                    "hours",
                                    "days",
                                    "weeks",
                                    "months"
                                  ]
                                },
                                "duration": {
                                  "type": "number",
                                  "minimum": 0,
                                  "exclusiveMinimum": true
                                },
                                "from": {
                                  "type": "string",
                                  "enum": [
                                    "now",
                                    "previous_workflow"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "time_period",
                                "duration"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "create_form"
                                  ]
                                },
                                "form_schema_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "form_status": {
                                  "type": "string",
                                  "enum": [
                                    "validated",
                                    "invalidated",
                                    "pending",
                                    "submitted",
                                    "draft"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "form_schema_id",
                                "form_status"
                              ]
                            }
                          ]
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "task"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "user_task"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 256
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 1024
                        },
                        "next": {
                          "type": "string"
                        },
                        "end": {
                          "type": "boolean"
                        },
                        "task": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "manual_task"
                                  ]
                                }
                              },
                              "required": [
                                "type"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "submit_form"
                                  ]
                                },
                                "form_schema_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "autocomplete": {
                                  "type": "boolean",
                                  "description": "Completes workflow as soon as a form is associated to task. Defaults to false"
                                },
                                "auto_attach": {
                                  "type": "boolean",
                                  "description": "Will automatically attach any workflow that matches the schema + asset to this open task"
                                },
                                "form_required": {
                                  "type": "boolean",
                                  "description": "Lock task from completion if they do not have a form associated"
                                }
                              },
                              "required": [
                                "type",
                                "form_schema_id"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "complete_event"
                                  ]
                                },
                                "event_step_id": {
                                  "type": "string",
                                  "format": "uuid"
                                }
                              },
                              "required": [
                                "type",
                                "event_step_id"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "choice"
                                  ]
                                },
                                "choices": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 64
                                      },
                                      "name": {
                                        "type": "string",
                                        "maxLength": 256
                                      },
                                      "description": {
                                        "type": "string",
                                        "maxLength": 1024
                                      },
                                      "next": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name",
                                      "description",
                                      "next"
                                    ]
                                  },
                                  "minItems": 2,
                                  "maxItems": 10
                                }
                              },
                              "required": [
                                "type",
                                "choices"
                              ]
                            }
                          ]
                        },
                        "is_dismissible": {
                          "type": "boolean",
                          "description": "Determines whether a workflow task can be dismissed. Defaults to false"
                        },
                        "assignment_filter": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "assignee_user": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "assignee_group": {
                                  "type": "string",
                                  "format": "uuid"
                                }
                              }
                            }
                          }
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "restrict_assignee_completion": {
                          "type": "boolean"
                        },
                        "assignee_user": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "assignee_group": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "description",
                        "task"
                      ]
                    }
                  ]
                }
              },
              "workflow_name": {
                "type": "string"
              },
              "workflow_description": {
                "type": "string"
              }
            },
            "required": [
              "start",
              "steps"
            ]
          },
          "output": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "workflow_notifications": {
            "type": "object",
            "properties": {
              "events": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "created"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "status_changed"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "deleted"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "upcoming_due_date"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  ]
                }
              },
              "recipients": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "owner"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "all_assignees"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "users"
                          ]
                        },
                        "users": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "maxItems": 20
                        }
                      },
                      "required": [
                        "type",
                        "users"
                      ]
                    }
                  ]
                }
              },
              "channels": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "email"
                      ]
                    }
                  },
                  "required": [
                    "type"
                  ]
                }
              }
            },
            "required": [
              "events",
              "recipients",
              "channels"
            ]
          },
          "workflow_task_notifications": {
            "type": "object",
            "properties": {
              "events": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "created"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "status_changed"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "assignee_changed"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  ]
                }
              },
              "recipients": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "workflow_owner"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "assignee"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "assignee_user"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "assignee_group"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "users"
                          ]
                        },
                        "users": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "maxItems": 20
                        }
                      },
                      "required": [
                        "type",
                        "users"
                      ]
                    }
                  ]
                }
              },
              "channels": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "email"
                      ]
                    }
                  },
                  "required": [
                    "type"
                  ]
                }
              },
              "input": {
                "type": "object",
                "properties": {
                  "$.description": {
                    "type": "string"
                  }
                }
              },
              "step_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "task_status": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "open",
                    "complete",
                    "dismissed",
                    "overdue"
                  ]
                }
              }
            },
            "required": [
              "events",
              "recipients",
              "channels"
            ]
          },
          "asset_type": {
            "type": "string",
            "enum": [
              "asset_group",
              "facility",
              "equipment",
              "device",
              "flow"
            ]
          },
          "asset_filter": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            }
          },
          "workflow_owner_id": {
            "type": "string",
            "format": "uuid"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "company_id",
          "category_id",
          "name",
          "description",
          "version",
          "status",
          "triggers",
          "config",
          "output",
          "workflow_notifications",
          "workflow_task_notifications",
          "asset_type",
          "asset_filter",
          "workflow_owner_id",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by"
        ]
      },
      "WorkflowTemplateStatus": {
        "type": "string",
        "enum": [
          "active",
          "draft",
          "archive"
        ]
      },
      "IUpdateWorkflowTemplateInput": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "description": {
                "type": "string",
                "maxLength": 1024
              },
              "status": {
                "type": "string",
                "enum": [
                  "archive",
                  "draft",
                  "active"
                ]
              },
              "config": {
                "type": "object",
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "steps": {
                    "type": "object",
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "system_action"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "maxLength": 256
                            },
                            "description": {
                              "type": "string",
                              "maxLength": 1024
                            },
                            "next": {
                              "type": "string"
                            },
                            "end": {
                              "type": "boolean"
                            },
                            "task": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "create_event"
                                      ]
                                    },
                                    "event_schema_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "event_status": {
                                      "type": "string",
                                      "enum": [
                                        "open",
                                        "resolved",
                                        "overdue",
                                        "dismissed"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "event_schema_id",
                                    "event_status"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "form_choice"
                                      ]
                                    },
                                    "form_schema_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "choices": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "answer_filter": {
                                            "type": "object",
                                            "additionalProperties": {
                                              "nullable": true
                                            },
                                            "description": "an array of answer filters is similar to an and operation which will match answers with a common section_id and section_index. filter must contain question_id and answer to make the condition meaningful"
                                          },
                                          "next": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "answer_filter",
                                          "next"
                                        ]
                                      },
                                      "minItems": 1,
                                      "maxItems": 8
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "form_schema_id",
                                    "choices"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "delay"
                                      ]
                                    },
                                    "time_period": {
                                      "type": "string",
                                      "enum": [
                                        "hours",
                                        "days",
                                        "weeks",
                                        "months"
                                      ]
                                    },
                                    "duration": {
                                      "type": "number",
                                      "minimum": 0,
                                      "exclusiveMinimum": true
                                    },
                                    "from": {
                                      "type": "string",
                                      "enum": [
                                        "now",
                                        "previous_workflow"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "time_period",
                                    "duration"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "create_form"
                                      ]
                                    },
                                    "form_schema_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "form_status": {
                                      "type": "string",
                                      "enum": [
                                        "validated",
                                        "invalidated",
                                        "pending",
                                        "submitted",
                                        "draft"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "form_schema_id",
                                    "form_status"
                                  ]
                                }
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "name",
                            "task"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "user_task"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "maxLength": 256
                            },
                            "description": {
                              "type": "string",
                              "maxLength": 1024
                            },
                            "next": {
                              "type": "string"
                            },
                            "end": {
                              "type": "boolean"
                            },
                            "task": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "manual_task"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "submit_form"
                                      ]
                                    },
                                    "form_schema_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "autocomplete": {
                                      "type": "boolean",
                                      "description": "Completes workflow as soon as a form is associated to task. Defaults to false"
                                    },
                                    "auto_attach": {
                                      "type": "boolean",
                                      "description": "Will automatically attach any workflow that matches the schema + asset to this open task"
                                    },
                                    "form_required": {
                                      "type": "boolean",
                                      "description": "Lock task from completion if they do not have a form associated"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "form_schema_id"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "complete_event"
                                      ]
                                    },
                                    "event_step_id": {
                                      "type": "string",
                                      "format": "uuid"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "event_step_id"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "output": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^\\$.*$",
                                            "description": "path must be a JSON path to specify the JSON fields starting with $",
                                            "example": "$.answers.section1[0].question_leak.value"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                      "example": {
                                        "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                        "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                        "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                        "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                        "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                        "$FOO": "bar"
                                      }
                                    },
                                    "input": {
                                      "type": "object",
                                      "additionalProperties": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 64,
                                            "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                            "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                            "example": "$TRIGGERING_ASSET_NAME"
                                          },
                                          {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1024,
                                            "pattern": "^(?!\\$).*$",
                                            "description": "static value ​​cannot start with $",
                                            "example": "foo"
                                          }
                                        ]
                                      },
                                      "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                      "example": {
                                        "$.description": "foo",
                                        "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                      }
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "choice"
                                      ]
                                    },
                                    "choices": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 64
                                          },
                                          "name": {
                                            "type": "string",
                                            "maxLength": 256
                                          },
                                          "description": {
                                            "type": "string",
                                            "maxLength": 1024
                                          },
                                          "next": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "id",
                                          "name",
                                          "description",
                                          "next"
                                        ]
                                      },
                                      "minItems": 2,
                                      "maxItems": 10
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "choices"
                                  ]
                                }
                              ]
                            },
                            "is_dismissible": {
                              "type": "boolean",
                              "description": "Determines whether a workflow task can be dismissed. Defaults to false"
                            },
                            "assignment_filter": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "additionalProperties": {
                                  "type": "object",
                                  "properties": {
                                    "assignee_user": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "assignee_group": {
                                      "type": "string",
                                      "format": "uuid"
                                    }
                                  }
                                }
                              }
                            },
                            "due_date": {
                              "type": "object",
                              "properties": {
                                "time_period": {
                                  "type": "string",
                                  "enum": [
                                    "hours",
                                    "days",
                                    "weeks",
                                    "months"
                                  ]
                                },
                                "duration": {
                                  "type": "number",
                                  "minimum": 0,
                                  "exclusiveMinimum": true
                                }
                              },
                              "required": [
                                "time_period",
                                "duration"
                              ]
                            },
                            "restrict_assignee_completion": {
                              "type": "boolean"
                            },
                            "assignee_user": {
                              "type": "string",
                              "format": "uuid"
                            },
                            "assignee_group": {
                              "type": "string",
                              "format": "uuid"
                            }
                          },
                          "required": [
                            "type",
                            "name",
                            "description",
                            "task"
                          ]
                        }
                      ]
                    }
                  },
                  "workflow_name": {
                    "type": "string"
                  },
                  "workflow_description": {
                    "type": "string"
                  }
                },
                "required": [
                  "start",
                  "steps"
                ]
              },
              "triggers": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "scheduled"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "cron": {
                          "type": "string",
                          "description": "https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents-expressions.html",
                          "example": "0 8 * * ? *"
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "form_submission_create"
                          ]
                        },
                        "form_schema_id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "answer_filter": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "submission_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "section_id": {
                                  "type": "string"
                                },
                                "question_index": {
                                  "type": "integer"
                                },
                                "question_id": {
                                  "type": "string"
                                },
                                "answer.value": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "nullable": true
                                    },
                                    {
                                      "nullable": true
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "question_id"
                              ]
                            },
                            {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "format": "uuid"
                                  },
                                  "submission_id": {
                                    "type": "string",
                                    "format": "uuid"
                                  },
                                  "section_id": {
                                    "type": "string"
                                  },
                                  "question_index": {
                                    "type": "integer"
                                  },
                                  "question_id": {
                                    "type": "string"
                                  },
                                  "answer.value": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "number"
                                      },
                                      {
                                        "nullable": true
                                      },
                                      {
                                        "nullable": true
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "question_id"
                                ]
                              }
                            }
                          ]
                        }
                      },
                      "required": [
                        "type",
                        "event",
                        "form_schema_id"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "asset_create"
                          ]
                        },
                        "asset_type": {
                          "type": "string",
                          "enum": [
                            "asset_group",
                            "facility",
                            "equipment",
                            "device",
                            "flow"
                          ]
                        },
                        "asset_filter": {
                          "type": "object",
                          "additionalProperties": {
                            "nullable": true
                          }
                        }
                      },
                      "required": [
                        "type",
                        "event",
                        "asset_type",
                        "asset_filter"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "asset_update"
                          ]
                        },
                        "asset_type": {
                          "type": "string",
                          "enum": [
                            "asset_group",
                            "facility",
                            "equipment",
                            "device",
                            "flow"
                          ]
                        },
                        "asset_filter": {
                          "type": "object",
                          "additionalProperties": {
                            "nullable": true
                          }
                        },
                        "attributes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        }
                      },
                      "required": [
                        "type",
                        "event",
                        "asset_type",
                        "asset_filter"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system"
                          ]
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            },
                            "start_variable": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "notification_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "output": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^\\$.*$",
                                "description": "path must be a JSON path to specify the JSON fields starting with $",
                                "example": "$.answers.section1[0].question_leak.value"
                              },
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 1024,
                                "pattern": "^(?!\\$).*$",
                                "description": "static value ​​cannot start with $",
                                "example": "foo"
                              }
                            ]
                          },
                          "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                          "example": {
                            "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                            "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                            "$ASSOCIATED_ASSET_ID": "$.asset.id",
                            "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                            "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                            "$FOO": "bar"
                          }
                        },
                        "event": {
                          "type": "string",
                          "enum": [
                            "workflow_complete"
                          ]
                        },
                        "workflow_template_id": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "required": [
                        "type",
                        "event",
                        "workflow_template_id"
                      ]
                    }
                  ],
                  "example": {
                    "type": "system",
                    "event": "asset_create",
                    "asset_type": "equipment",
                    "due_date": {
                      "time_period": "hours",
                      "duration": 0
                    },
                    "asset_filter": {
                      "type": "acid_gas_removal",
                      "custom_attributes.attribute1": 12345,
                      "facility_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                    }
                  }
                }
              },
              "output": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "workflow_notifications": {
                "type": "object",
                "properties": {
                  "events": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "created"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "status_changed"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "deleted"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "upcoming_due_date"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      ]
                    }
                  },
                  "recipients": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "owner"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "all_assignees"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "users"
                              ]
                            },
                            "users": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "maxItems": 20
                            }
                          },
                          "required": [
                            "type",
                            "users"
                          ]
                        }
                      ]
                    }
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "email"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  }
                },
                "required": [
                  "events",
                  "recipients",
                  "channels"
                ]
              },
              "workflow_task_notifications": {
                "type": "object",
                "properties": {
                  "events": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "created"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "status_changed"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "assignee_changed"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      ]
                    }
                  },
                  "recipients": {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "workflow_owner"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "assignee"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "assignee_user"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "assignee_group"
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "users"
                              ]
                            },
                            "users": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "maxItems": 20
                            }
                          },
                          "required": [
                            "type",
                            "users"
                          ]
                        }
                      ]
                    }
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "email"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  },
                  "input": {
                    "type": "object",
                    "properties": {
                      "$.description": {
                        "type": "string"
                      }
                    }
                  },
                  "step_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "task_status": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "open",
                        "complete",
                        "dismissed",
                        "overdue"
                      ]
                    }
                  }
                },
                "required": [
                  "events",
                  "recipients",
                  "channels"
                ]
              },
              "asset_type": {
                "type": "string",
                "enum": [
                  "asset_group",
                  "facility",
                  "equipment",
                  "device",
                  "flow"
                ]
              },
              "asset_filter": {
                "type": "object",
                "additionalProperties": {
                  "nullable": true
                }
              },
              "workflow_owner_id": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "facility_filter": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "nullable": true
                }
              }
            }
          }
        ]
      },
      "ICreateWorkflowInput": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "workflow_template_id": {
                "type": "string",
                "format": "uuid"
              }
            },
            "required": [
              "workflow_template_id"
            ]
          },
          {
            "type": "object",
            "properties": {
              "facility_id": {
                "type": "string",
                "format": "uuid"
              },
              "asset_id": {
                "type": "string",
                "format": "uuid"
              },
              "due_date": {
                "type": "object",
                "properties": {
                  "time_period": {
                    "type": "string",
                    "enum": [
                      "hours",
                      "days",
                      "weeks",
                      "months"
                    ]
                  },
                  "duration": {
                    "type": "number",
                    "minimum": 0,
                    "exclusiveMinimum": true
                  },
                  "start_variable": {
                    "type": "string"
                  }
                },
                "required": [
                  "time_period",
                  "duration"
                ]
              },
              "notification_date": {
                "type": "object",
                "properties": {
                  "time_period": {
                    "type": "string",
                    "enum": [
                      "hours",
                      "days",
                      "weeks",
                      "months"
                    ]
                  },
                  "duration": {
                    "type": "number",
                    "minimum": 0,
                    "exclusiveMinimum": true
                  }
                },
                "required": [
                  "time_period",
                  "duration"
                ]
              }
            }
          }
        ]
      },
      "WorkflowStatus": {
        "type": "string",
        "enum": [
          "complete",
          "in_progress",
          "overdue",
          "dismissed",
          "missed"
        ]
      },
      "IWorkflow": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "workflow_template_id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "complete",
              "in_progress",
              "overdue",
              "dismissed",
              "missed",
              "error"
            ]
          },
          "config": {
            "type": "object",
            "properties": {
              "start": {
                "type": "string"
              },
              "steps": {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "system_action"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 256
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 1024
                        },
                        "next": {
                          "type": "string"
                        },
                        "end": {
                          "type": "boolean"
                        },
                        "task": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "create_event"
                                  ]
                                },
                                "event_schema_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "event_status": {
                                  "type": "string",
                                  "enum": [
                                    "open",
                                    "resolved",
                                    "overdue",
                                    "dismissed"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "event_schema_id",
                                "event_status"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "form_choice"
                                  ]
                                },
                                "form_schema_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "choices": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "answer_filter": {
                                        "type": "object",
                                        "additionalProperties": {
                                          "nullable": true
                                        },
                                        "description": "an array of answer filters is similar to an and operation which will match answers with a common section_id and section_index. filter must contain question_id and answer to make the condition meaningful"
                                      },
                                      "next": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "answer_filter",
                                      "next"
                                    ]
                                  },
                                  "minItems": 1,
                                  "maxItems": 8
                                }
                              },
                              "required": [
                                "type",
                                "form_schema_id",
                                "choices"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "delay"
                                  ]
                                },
                                "time_period": {
                                  "type": "string",
                                  "enum": [
                                    "hours",
                                    "days",
                                    "weeks",
                                    "months"
                                  ]
                                },
                                "duration": {
                                  "type": "number",
                                  "minimum": 0,
                                  "exclusiveMinimum": true
                                },
                                "from": {
                                  "type": "string",
                                  "enum": [
                                    "now",
                                    "previous_workflow"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "time_period",
                                "duration"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "create_form"
                                  ]
                                },
                                "form_schema_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "form_status": {
                                  "type": "string",
                                  "enum": [
                                    "validated",
                                    "invalidated",
                                    "pending",
                                    "submitted",
                                    "draft"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "form_schema_id",
                                "form_status"
                              ]
                            }
                          ]
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "task"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "user_task"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 256
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 1024
                        },
                        "next": {
                          "type": "string"
                        },
                        "end": {
                          "type": "boolean"
                        },
                        "task": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "manual_task"
                                  ]
                                }
                              },
                              "required": [
                                "type"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "submit_form"
                                  ]
                                },
                                "form_schema_id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "autocomplete": {
                                  "type": "boolean",
                                  "description": "Completes workflow as soon as a form is associated to task. Defaults to false"
                                },
                                "auto_attach": {
                                  "type": "boolean",
                                  "description": "Will automatically attach any workflow that matches the schema + asset to this open task"
                                },
                                "form_required": {
                                  "type": "boolean",
                                  "description": "Lock task from completion if they do not have a form associated"
                                }
                              },
                              "required": [
                                "type",
                                "form_schema_id"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "complete_event"
                                  ]
                                },
                                "event_step_id": {
                                  "type": "string",
                                  "format": "uuid"
                                }
                              },
                              "required": [
                                "type",
                                "event_step_id"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "output": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^\\$.*$",
                                        "description": "path must be a JSON path to specify the JSON fields starting with $",
                                        "example": "$.answers.section1[0].question_leak.value"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for storing workflow variables. Value accept static value or a JSON path starting with $",
                                  "example": {
                                    "$TRIGGERING_ASSET_ID": "$.asset_trigger.metadata.id",
                                    "$LEAK_EQUIPMENT": "$.answers.section1[0].question_leak.value",
                                    "$ASSOCIATED_ASSET_ID": "$.asset.id",
                                    "$ASSOCIATED_ASSET_NAME": "$.asset.name",
                                    "$ASSOCIATED_ASSET_TYPE": "$.asset.asset_type",
                                    "$FOO": "bar"
                                  }
                                },
                                "input": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "minLength": 3,
                                        "maxLength": 64,
                                        "pattern": "^\\$[A-Z]+[A-Z_0-9]+",
                                        "description": "variable name must start with $ and use only uppercase letters, digits and the dash character, variable name must not start with $VALIDERE, reserved namespace",
                                        "example": "$TRIGGERING_ASSET_NAME"
                                      },
                                      {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 1024,
                                        "pattern": "^(?!\\$).*$",
                                        "description": "static value ​​cannot start with $",
                                        "example": "foo"
                                      }
                                    ]
                                  },
                                  "description": "key-value pairs for accessing workflow variables. Value accept static value or a Variable name",
                                  "example": {
                                    "$.description": "foo",
                                    "$.questions.question_leak.default_answer": "$LEAK_EQUIPMENT"
                                  }
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "choice"
                                  ]
                                },
                                "choices": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 64
                                      },
                                      "name": {
                                        "type": "string",
                                        "maxLength": 256
                                      },
                                      "description": {
                                        "type": "string",
                                        "maxLength": 1024
                                      },
                                      "next": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name",
                                      "description",
                                      "next"
                                    ]
                                  },
                                  "minItems": 2,
                                  "maxItems": 10
                                }
                              },
                              "required": [
                                "type",
                                "choices"
                              ]
                            }
                          ]
                        },
                        "is_dismissible": {
                          "type": "boolean",
                          "description": "Determines whether a workflow task can be dismissed. Defaults to false"
                        },
                        "assignment_filter": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "assignee_user": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "assignee_group": {
                                  "type": "string",
                                  "format": "uuid"
                                }
                              }
                            }
                          }
                        },
                        "due_date": {
                          "type": "object",
                          "properties": {
                            "time_period": {
                              "type": "string",
                              "enum": [
                                "hours",
                                "days",
                                "weeks",
                                "months"
                              ]
                            },
                            "duration": {
                              "type": "number",
                              "minimum": 0,
                              "exclusiveMinimum": true
                            }
                          },
                          "required": [
                            "time_period",
                            "duration"
                          ]
                        },
                        "restrict_assignee_completion": {
                          "type": "boolean"
                        },
                        "assignee_user": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "assignee_group": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "description",
                        "task"
                      ]
                    }
                  ]
                }
              },
              "workflow_name": {
                "type": "string"
              },
              "workflow_description": {
                "type": "string"
              }
            },
            "required": [
              "start",
              "steps"
            ]
          },
          "variables": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "step_states": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "enum": [
                "pending",
                "finished",
                "skipped",
                "failed"
              ]
            }
          },
          "due_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "notification_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "company_id",
          "workflow_template_id",
          "status",
          "config",
          "variables",
          "step_states",
          "due_date",
          "created_at",
          "updated_at",
          "created_by",
          "updated_by"
        ]
      },
      "IUpdateWorkflowInput": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "complete",
              "in_progress",
              "overdue",
              "dismissed",
              "missed",
              "error"
            ]
          }
        }
      },
      "WorkflowTaskStatus": {
        "type": "string",
        "enum": [
          "complete",
          "open",
          "dismissed"
        ]
      },
      "UserTask": {
        "type": "string",
        "enum": [
          "manual_task",
          "submit_form",
          "complete_event",
          "choice"
        ]
      },
      "IWorkflowTask": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "workflow_id": {
            "type": "string",
            "format": "uuid"
          },
          "step_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "complete",
              "dismissed",
              "overdue"
            ]
          },
          "is_dismissible": {
            "type": "boolean"
          },
          "type": {
            "type": "string",
            "enum": [
              "manual_task",
              "submit_form",
              "complete_event",
              "choice"
            ]
          },
          "assignee_user": {
            "type": "string"
          },
          "assignee_group": {
            "type": "string"
          },
          "restrict_assignee_completion": {
            "type": "boolean"
          },
          "callback_token": {
            "type": "string"
          },
          "due_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "updated_by": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id",
          "company_id",
          "workflow_id",
          "step_id",
          "name",
          "description",
          "status",
          "type",
          "restrict_assignee_completion",
          "created_at",
          "updated_at",
          "updated_by"
        ]
      },
      "IWorkflowAction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "workflow_id": {
            "type": "string",
            "format": "uuid"
          },
          "step_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "create_event",
              "form_choice",
              "delay",
              "create_form"
            ]
          },
          "created_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "company_id",
          "workflow_id",
          "step_id",
          "name",
          "description",
          "type",
          "created_at"
        ]
      },
      "schemas-UserTask": {
        "type": "string",
        "enum": [
          "manual_task",
          "submit_form",
          "complete_event"
        ]
      },
      "SystemAction": {
        "type": "string",
        "enum": [
          "create_event",
          "form_choice",
          "delay",
          "create_form"
        ]
      },
      "WorkflowTaskType": {
        "allOf": [
          {
            "$ref": "#/components/schemas/schemas-UserTask"
          },
          {
            "$ref": "#/components/schemas/SystemAction"
          }
        ]
      },
      "WorkflowStepType": {
        "type": "string",
        "nullable": true,
        "enum": [
          "user_task",
          "system_action"
        ]
      },
      "IWorkflowStep": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "workflow_id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "due_date": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          },
          "is_dismissible": {
            "type": "boolean",
            "nullable": true
          },
          "type": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "create_event",
                  "form_choice",
                  "delay",
                  "create_form"
                ]
              },
              {
                "type": "string",
                "enum": [
                  "manual_task",
                  "submit_form",
                  "complete_event",
                  "choice"
                ]
              }
            ]
          },
          "step_id": {
            "type": "string"
          },
          "step_type": {
            "type": "string",
            "enum": [
              "system_action",
              "user_task"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "complete",
              "dismissed",
              "overdue"
            ]
          },
          "assignee_user": {
            "type": "string",
            "nullable": true,
            "format": "uuid"
          },
          "assignee_group": {
            "type": "string",
            "nullable": true,
            "format": "uuid"
          },
          "assignee_to": {
            "type": "string",
            "nullable": true,
            "format": "uuid"
          },
          "restrict_assignee_completion": {
            "type": "boolean",
            "nullable": true
          },
          "entity_id": {
            "type": "string",
            "nullable": true,
            "format": "uuid"
          },
          "entity_name": {
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "workflow_id",
          "name",
          "description",
          "due_date",
          "is_dismissible",
          "type",
          "step_id",
          "assignee_user",
          "assignee_group",
          "assignee_to",
          "restrict_assignee_completion",
          "entity_id",
          "entity_name",
          "created_at",
          "updated_at"
        ]
      },
      "IUpdateWorkflowTaskInput": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "open",
              "complete",
              "dismissed",
              "overdue"
            ]
          },
          "assignee_user": {
            "type": "string"
          },
          "assignee_group": {
            "type": "string"
          },
          "choice": {
            "type": "string",
            "description": "Include for choice task types to specify which choice"
          }
        }
      },
      "TemplatedConfigurationResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9]+$"
          },
          "display_name": {
            "type": "string"
          },
          "primary_resource_type": {
            "type": "string",
            "enum": [
              "equipment",
              "flow",
              "asset_group",
              "asset_group_asset",
              "form_submission",
              "default_record_value_configuration",
              "estimation_method",
              "default_calculator_input_record",
              "reporting_group_estimation_method",
              "reporting_group"
            ]
          },
          "other_resource_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "equipment",
                "flow",
                "asset_group",
                "asset_group_asset",
                "form_submission",
                "default_record_value_configuration",
                "estimation_method",
                "default_calculator_input_record",
                "reporting_group_estimation_method",
                "reporting_group"
              ]
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "configuration": {
            "type": "object",
            "properties": {
              "custom_attribute_configuration": {
                "type": "object",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "entity_type": {
                      "type": "string",
                      "enum": [
                        "asset_group",
                        "facility",
                        "equipment",
                        "device",
                        "flow"
                      ]
                    },
                    "entity_subtypes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "entity_type",
                    "entity_subtypes"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "equipment1": {
                    "entity_type": "equipment",
                    "entity_subtypes": [
                      "cal_revamp_compressor",
                      "cal_revamp_dehydrator"
                    ]
                  }
                }
              }
            },
            "additionalProperties": false
          },
          "equipment_types": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ],
              "additionalProperties": false
            }
          },
          "description": {
            "type": "string",
            "maxLength": 1024
          }
        },
        "required": [
          "name",
          "display_name",
          "primary_resource_type",
          "other_resource_types",
          "created_at",
          "updated_at",
          "configuration",
          "description"
        ],
        "example": {
          "name": "CompressorTemplate",
          "display_name": "Compressor Template",
          "description": "Compressor Template Description",
          "primary_resource_type": "equipment",
          "other_resource_types": [
            "flow"
          ],
          "equipment_types": [
            {
              "id": "cal_revamp_desiccant_dehydrator",
              "name": "Desiccant Dehydrator"
            },
            {
              "id": "cal_revamp_dehydrator",
              "name": "Dehydrator"
            }
          ],
          "configuration": {
            "custom_attribute_configuration": {
              "equipment1": {
                "entity_type": "equipment",
                "entity_subtypes": [
                  "cal_revamp_desiccant_dehydrator",
                  "cal_revamp_compressor"
                ]
              },
              "flow1": {
                "entity_type": "flow",
                "entity_subtypes": []
              }
            }
          },
          "created_at": "2021-08-01T00:00:00Z",
          "updated_at": "2021-08-01T00:00:00Z"
        }
      },
      "GetTemplatedConfigurationInputsRequestBody": {
        "type": "object",
        "properties": {
          "custom_attribute_configuration": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "entity_subtype": {
                  "type": "string"
                }
              },
              "required": [
                "entity_subtype"
              ],
              "additionalProperties": false
            },
            "example": {
              "equipment1": {
                "entity_subtype": "compressor"
              }
            }
          }
        },
        "required": [
          "custom_attribute_configuration"
        ],
        "additionalProperties": false,
        "description": "The keys which must be specified in custom_attribute_configuration can be found in the template definition's custom_attribute_configuration.\n      An entity subtype must be specified for each entity which can have several possible entity_subtypes."
      },
      "TemplatedConfigurationInputsResponseBody": {
        "type": "object",
        "properties": {
          "inputs": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "display_name": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "lookup_entity_attribute": {
                  "type": "string"
                },
                "data_type": {
                  "type": "string",
                  "enum": [
                    "boolean",
                    "number",
                    "integer",
                    "pick-list",
                    "multi-pick-list",
                    "string",
                    "geo_point",
                    "number-array",
                    "lookup",
                    "date",
                    "date-time",
                    "date-time-range",
                    "file"
                  ]
                },
                "is_required": {
                  "type": "boolean"
                },
                "pick_list_values": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "lookup_entity_type": {
                  "type": "string",
                  "enum": [
                    "equipment",
                    "device",
                    "facility",
                    "flow",
                    "asset_group",
                    "form_schema"
                  ]
                },
                "substitutions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                }
              },
              "required": [
                "display_name",
                "description",
                "data_type",
                "is_required"
              ]
            }
          },
          "custom_attribute_inputs": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "company_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "field_name": {
                    "type": "string"
                  },
                  "entity_type": {
                    "type": "string",
                    "enum": [
                      "asset_group",
                      "facility",
                      "equipment",
                      "device",
                      "flow"
                    ]
                  },
                  "entity_subtypes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "display_name": {
                    "type": "string"
                  },
                  "data_type": {
                    "type": "string",
                    "enum": [
                      "boolean",
                      "number",
                      "integer",
                      "pick-list",
                      "multi-pick-list",
                      "string",
                      "geo_point",
                      "number-array",
                      "lookup",
                      "date",
                      "date-time",
                      "date-time-range",
                      "file"
                    ]
                  },
                  "description": {
                    "type": "string"
                  },
                  "unit": {
                    "type": "string"
                  },
                  "archived": {
                    "type": "boolean"
                  },
                  "is_required": {
                    "type": "boolean"
                  },
                  "lookup_entity_type": {
                    "type": "string",
                    "enum": [
                      "equipment",
                      "device",
                      "facility",
                      "flow",
                      "asset_group"
                    ]
                  },
                  "pick_list_values": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "company_id",
                  "field_name",
                  "entity_type",
                  "display_name",
                  "data_type",
                  "description",
                  "archived",
                  "is_required"
                ]
              }
            }
          }
        },
        "required": [
          "inputs",
          "custom_attribute_inputs"
        ],
        "additionalProperties": false,
        "example": {
          "inputs": {
            "equipment_name": {
              "display_name": "Equipment Name",
              "description": "The name of the equipment",
              "data_type": "string",
              "is_required": true
            },
            "facility_id": {
              "display_name": "ID of Facility",
              "description": "The id of the facility",
              "data_type": "string",
              "is_required": true
            }
          },
          "custom_attribute_inputs": {
            "equipment1": {
              "equipment_ca1": {
                "company_id": "11cb1b81-bcc1-4663-a58d-4b6a637a98f5",
                "data_type": "string",
                "field_name": "equipment_ca1",
                "description": "This is a custom attribute",
                "entity_type": "equipment",
                "entity_subtypes": [
                  "cal_revamp_compressor"
                ],
                "display_name": "My Custom Attribute",
                "archived": false,
                "is_required": true
              }
            },
            "flow1": {
              "flow_ca1": {
                "company_id": "11cb1b81-bcc1-4663-a58d-4b6a637a98f5",
                "data_type": "string",
                "field_name": "flow_ca1",
                "description": "This is a custom attribute",
                "entity_type": "flow",
                "display_name": "My Custom Attribute",
                "archived": false,
                "is_required": true
              }
            }
          }
        }
      },
      "TemplatedConfigurationResourceTypes": {
        "type": "string",
        "enum": [
          "equipment",
          "flow"
        ]
      },
      "CustomAttributeConfigurationInput": {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "entity_subtype": {
              "type": "string"
            }
          },
          "required": [
            "entity_subtype"
          ],
          "additionalProperties": false
        },
        "example": {
          "equipment1": {
            "entity_subtype": "compressor"
          }
        }
      },
      "TemplatedConfigurationRunStatus": {
        "type": "string",
        "enum": [
          "submitted",
          "partial",
          "success",
          "failed"
        ]
      },
      "TemplatedConfigurationResourceStatus": {
        "type": "string",
        "enum": [
          "submitted",
          "success",
          "failed"
        ]
      }
    }
  }
}