Secoda

Data catalog and documentation platform

docs.secoda.co/api ↗
Version
1.0.0
OpenAPI
3.0.0
Endpoints
110
Schemas
71
86
Quality
Updated
3 days ago
Data data catalog documentation
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.secoda.co
https://eapi.secoda.co
https://aapi.secoda.co
https://{customer_domain}.secoda.co/api/v1

Endpoints

Charts 5 endpoints

GET /dashboard/charts

Retrieve a list of charts with optional filtering by integration_id, parent_id (the dashboard the chart belongs to), and title.

operationId: Charts_list

Parameters

Name In Required Type Description
integration_id query optional string

Filter by integration ID

parent_id query optional string

Filter by parent ID

title query optional string

Filter by title

Responses

200

List of charts.

400

Bad Request

500

Internal Server Error

GET /dashboard/charts
POST /dashboard/charts

Create a new chart with the provided data. Charts must have a dashboard as a parent, and be associated with an integration.

operationId: Charts_createNewChart

Request Body

required

Chart data

application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

201

Created

400

Bad Request

500

Internal Server Error

POST /dashboard/charts
DELETE /dashboard/charts/{chart_id}

Delete a specific chart by its ID.

operationId: Charts_deleteById

Parameters

Name In Required Type Description
chart_id path required string

Responses

200

OK

404

Not Found

500

Internal Server Error

DELETE /dashboard/charts/{chart_id}
GET /dashboard/charts/{chart_id}

Retrieve a specific chart by its ID.

operationId: Charts_getById

Parameters

Name In Required Type Description
chart_id path required string

The ID of the chart to retrieve.

Responses

200

OK

404

Not Found

500

Internal Server Error

GET /dashboard/charts/{chart_id}
PATCH /dashboard/charts/{chart_id}

Use this endpoint to update chart metadata.

operationId: Charts_updateById

Parameters

Name In Required Type Description
chart_id path required string

The ID of the chart to update.

Request Body

required
application/json
schema BasePatchRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
owners array optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
subscribers array optional

Responses

200

OK

404

Not Found

500

Internal Server Error

PATCH /dashboard/charts/{chart_id}

Collections 5 endpoints

GET /collection/collections

This endpoint allows you to retrieve a list of collections. You can optionally filter the collections by title using the “title” query parameter.

operationId: Collections_listCollectionsByTitle

Parameters

Name In Required Type Description
title query optional string

Filter collections by title (optional)

Responses

200

List of collections.

400

Bad Request

500

Internal Server Error

GET /collection/collections
POST /collection/collections

This endpoint allows you to create a new collection. Note, adding resources to a collection through the API must be done on the resource that is added (by adding the collection_id to the collections parameter). Related resources cannot be added using the /collection/collections endpoints.

operationId: Collections_createNewCollection

Request Body

required
application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

201

Created

400

Bad Request

500

Internal Server Error

POST /collection/collections
DELETE /collection/collections/{collection_id}

This endpoint allows you to delete a collection by its unique identifier (collection_id).

operationId: Collections_deleteById

Parameters

Name In Required Type Description
collection_id path required string

The unique identifier of the collection to delete

Responses

204

Collection deleted successfully

404

Collection not found

500

Internal Server Error

DELETE /collection/collections/{collection_id}
GET /collection/collections/{collection_id}

This endpoint allows you to retrieve a collection by its unique identifier (collection_id).

operationId: Collections_getById

Parameters

Name In Required Type Description
collection_id path required string

The unique identifier of the collection

Responses

200

Collection retrieved successfully

404

Collection not found

500

Internal Server Error

GET /collection/collections/{collection_id}
PATCH /collection/collections/{collection_id}

Use this endpoint to update collections. Note, adding resources to a collection through the API must be done on the resource that is added (by adding the collection_id to the collections parameter). Related resources cannot be added using the /collection/collections endpoints.

operationId: Collections_updateById

Parameters

Name In Required Type Description
collection_id path required string

The unique identifier of the collection to edit

Request Body

required
application/json
schema BasePatchRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
owners array optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
subscribers array optional

Responses

200

Description updated successfully

400

Bad Request

404

Collection not found

500

Internal Server Error

PATCH /collection/collections/{collection_id}

Columns 5 endpoints

GET /table/columns

This endpoint allows you to retrieve a list of all columns in the workspace. Optional filters for integration_id, title, and parent_id (the table or parent column) are available.

operationId: Columns_getList

Parameters

Name In Required Type Description
integration_id query optional string

Optional. Filter columns by integration identifier.

parent_id query optional string

Optional. Filter columns by parent identifier. This could be the ID of the table or of the parent column in the case of nested columns.

title query optional string

Optional. Filter columns by title of the column.

table_title query optional string

Optional. Filter columns by title of the table that the columns belong to. If several integrations have the same naming of tables, it is recommended to combine this with the integration_id.

Responses

200

List of columns.

400

Bad request.

500

Internal server error.

GET /table/columns
POST /table/columns

This endpoint allows you to create a new column. Columns must have tables as a parent or another column for nested records. Columns must be associated with an integration.

operationId: Columns_createNewColumn

Request Body

application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

201

Column created successfully.

400

Bad request.

500

Internal server error.

POST /table/columns
DELETE /table/columns/{column_id}

This endpoint allows you to delete a specific column by its identifier.

operationId: Columns_deleteById

Parameters

Name In Required Type Description
column_id path required string

Identifier of the column to delete.

Responses

204

Column deleted successfully.

404

Column not found.

500

Internal server error.

DELETE /table/columns/{column_id}
GET /table/columns/{column_id}

This endpoint allows you to retrieve information about a specific column by its identifier.

operationId: Columns_getColumnById

Parameters

Name In Required Type Description
column_id path required string

Identifier of the column to retrieve.

Responses

200

Column retrieved successfully.

404

Column not found.

500

Internal server error.

GET /table/columns/{column_id}
PATCH /table/columns/{column_id}

This endpoint allows you to edit the metadata of a specific column by its identifier.

operationId: Columns_editById

Parameters

Name In Required Type Description
column_id path required string

Identifier of the column to retrieve.

Request Body

application/json
schema BasePatchRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
owners array optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
subscribers array optional

Responses

200

Column retrieved successfully.

404

Column not found.

500

Internal server error.

PATCH /table/columns/{column_id}

Dashboardgroups 3 endpoints

GET /dashboard/groups

List all the dashboard groups in the workspace. Optional filter by title.

operationId: DashboardGroups_list

Parameters

Name In Required Type Description
title query optional string

Filter groups by title

Responses

200

List of groups.

400

Bad Request

500

Internal Server Error

GET /dashboard/groups
POST /dashboard/groups

Use this endpoint to create a dashboard group, which will be the parent of dashboards.

operationId: DashboardGroups_createNewGroup

Request Body

required
application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

201

Created

400

Bad Request

500

Internal Server Error

POST /dashboard/groups
GET /dashboard/groups/{group_id}

Retrieve the information of a specific dashboard group.

operationId: DashboardGroups_getById

Parameters

Name In Required Type Description
group_id path required string

ID of the dashboard group to retrieve

Responses

200

OK

404

Not Found

500

Internal Server Error

GET /dashboard/groups/{group_id}

Dashboards 5 endpoints

GET /dashboard/dashboards

Retrieve a list of dashboards with optional filtering using the integration_id, parent_id (the dashboard group), and title.

operationId: Dashboards_listWithFilter

Parameters

Name In Required Type Description
integration_id query optional string

Filter by integration ID

parent_id query optional string

Filter by parent ID

title query optional string

Filter by title

Responses

200

List of dashboards.

400

Bad Request

500

Internal Server Error

GET /dashboard/dashboards
POST /dashboard/dashboards

Create a new dashboard with the provided data. Dashboards must have a Group as a parent, and be associated with an integration.

operationId: Dashboards_createNewDashboard

Request Body

required

Dashboard data

application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

201

Created

400

Bad Request

500

Internal Server Error

POST /dashboard/dashboards
DELETE /dashboard/dashboards/{dashboard_id}

Delete a specific dashboard by its ID.

operationId: Dashboards_deleteById

Parameters

Name In Required Type Description
dashboard_id path required string

The ID of the dashboard to delete.

Responses

200

OK

404

Not Found

500

Internal Server Error

DELETE /dashboard/dashboards/{dashboard_id}
GET /dashboard/dashboards/{dashboard_id}

Retrieve a specific dashboard by its ID.

operationId: Dashboards_getById

Parameters

Name In Required Type Description
dashboard_id path required string

The ID of the dashboard to retrieve.

Responses

200

OK

404

Not Found

500

Internal Server Error

GET /dashboard/dashboards/{dashboard_id}
PATCH /dashboard/dashboards/{dashboard_id}

Use this endpoint to update dashboard metadata.

operationId: Dashboards_updateById

Parameters

Name In Required Type Description
dashboard_id path required string

The ID of the dashboard to update.

Request Body

required

Represents the description of the dashboard

application/json
schema BasePatchRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
owners array optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
subscribers array optional

Responses

200

OK

404

Not Found

500

Internal Server Error

PATCH /dashboard/dashboards/{dashboard_id}

Databases 3 endpoints

GET /table/databases

Use this endpoint to see all the databases active in your workspace.

operationId: Databases_listAllActive

Parameters

Name In Required Type Description
title query optional string

The title of the database to search for.

Responses

200

List of databases.

400

Bad request.

500

Internal server error.

GET /table/databases
POST /table/databases

Create a new database resource. It must have a schema as a parent, and an associated integration.

operationId: Databases_createNewDatabase

Request Body

required
application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

201

Database created successfully

400

Bad request.

500

Internal server error.

POST /table/databases
GET /table/databases/{database_id}

Use this endpoint for retrieving a specific database by its ID.

operationId: Databases_getById

Parameters

Name In Required Type Description
database_id path required string

The unique identifier of the database to retrieve.

Responses

200

Database retrieved successfully

404

Database not found.

500

Internal server error.

GET /table/databases/{database_id}

Documents 5 endpoints

GET /document

This endpoint allows you to retrieve a list of documents. You can optionally filter the documents by title using the “title” query parameter.

operationId: Documents_listDocumentsByTitle

Parameters

Name In Required Type Description
title query optional string

Filter documents by title (optional)

Responses

200

List of documents.

400

Bad Request

500

Internal Server Error

GET /document
POST /document

This endpoint allows you to create a new document with the specified data. The document content is pulled from the definition parameter.

operationId: Documents_createNewDocument

Request Body

required
application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

201

Created

400

Bad Request

500

Internal Server Error

POST /document
DELETE /document/{document_id}

This endpoint allows you to delete a document by its unique identifier (document_id).

operationId: Documents_deleteById

Parameters

Name In Required Type Description
document_id path required string

The unique identifier of the document to delete

Responses

204

Document deleted successfully

404

Document not found

500

Internal Server Error

DELETE /document/{document_id}
GET /document/{document_id}

This endpoint allows you to retrieve a document by its unique identifier (document_id).

operationId: Documents_getById

Parameters

Name In Required Type Description
document_id path required string

The unique identifier of the document

Responses

200

Document retrieved successfully

404

Document not found

500

Internal Server Error

GET /document/{document_id}
PATCH /document/{document_id}

This endpoint allows you to edit the definition of a document by its unique identifier (document_id). The definition of the document maps to the visible content of the document itself.

operationId: Documents_updateById

Parameters

Name In Required Type Description
document_id path required string

The unique identifier of the document to edit

Request Body

required
application/json
schema BasePatchRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
owners array optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
subscribers array optional

Responses

200

Definition updated successfully

400

Bad Request

404

Document not found

500

Internal Server Error

PATCH /document/{document_id}

Eventcategories 3 endpoints

GET /event/category

List all the event categories in the workspace. Optional filter by title.

operationId: EventCategories_list

Parameters

Name In Required Type Description
title query optional string

Filter event categories by title

Responses

200

List of event categories.

400

Bad Request

500

Internal Server Error

GET /event/category
POST /event/category

Use this endpoint to create a new event category. This will be the parent of events. The category must be associated to an integration.

operationId: EventCategories_createNewCategory

Request Body

required
application/json
schema EventCategoriesCreateNewCategoryRequest
Property Type Required
teams array optional
title string optional
integration string optional

Responses

201

Event category created

400

Bad Request

500

Internal Server Error

POST /event/category
GET /event/category/{event_category_id}

Retrieve the information of a specific event category.

operationId: EventCategories_getById

Parameters

Name In Required Type Description
event_category_id path required string

ID of the event category to retrieve

Responses

200

OK

404

Not Found

500

Internal Server Error

GET /event/category/{event_category_id}

Eventproperties 5 endpoints

GET /event/event_properties

Retrieve a list of events with optional filtering using the integration_id, parent_id (the event), and title.

operationId: EventProperties_listEventProperties

Parameters

Name In Required Type Description
integration_id query optional string

Filter by integration ID

parent_id query optional string

Filter by parent ID

title query optional string

Filter by title

Responses

200

List of event properties.

400

Bad Request

500

Internal Server Error

GET /event/event_properties
POST /event/event_properties

Create a new event property with the provided data. Event properties must have an Event as a parent, and be associated with an integration.

operationId: EventProperties_createNewProperty

Request Body

required
application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

200

Event property created.

404

Not Found

500

Internal Server Error

POST /event/event_properties
DELETE /event/event_properties/{event_property_id}

Delete a specific event property by it’s ID.

operationId: EventProperties_deleteById

Parameters

Name In Required Type Description
event_property_id path required string

The ID of the event property to delete.

Responses

200

OK

404

Not Found

500

Internal Server Error

DELETE /event/event_properties/{event_property_id}
GET /event/event_properties/{event_property_id}

Retrieve a specific event property by its ID.

operationId: EventProperties_getById

Parameters

Name In Required Type Description
event_property_id path required string

The ID of the event property to retrieve.

Responses

200

OK

404

Not Found

500

Internal Server Error

GET /event/event_properties/{event_property_id}
PATCH /event/event_properties/{event_property_id}

Use this endpoint to partially update event metadata.

operationId: EventProperties_updateByIdentifier

Parameters

Name In Required Type Description
event_property_id path required string

The ID of the event property to update.

Request Body

required
application/json
schema BasePatchRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
owners array optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
subscribers array optional

Responses

200

OK

404

Not Found

500

Internal Server Error

PATCH /event/event_properties/{event_property_id}

Events 5 endpoints

GET /event/events

Retrieve a list of events with optional filtering using the integration_id, parent_id (the event category), and title.

operationId: Events_listEventsByFiltering

Parameters

Name In Required Type Description
integration_id query optional string

Filter by integration ID

parent_id query optional string

Filter by parent ID

title query optional string

Filter by title

Responses

200

List of events.

400

Bad Request

500

Internal Server Error

GET /event/events
POST /event/events

Create a new event with the provided data. Events must have a Category as a parent, and be associated with an integration.

operationId: Events_createNewEvent

Request Body

required
application/json
schema BaseResourceRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
title string optional
owners array optional
parent string optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
integration string optional
subscribers array optional

Responses

201

Event created

400

Bad Request

500

Internal Server Error

POST /event/events
DELETE /event/events/{event_id}

Delete a specific event by it’s ID.

operationId: Events_deleteById

Parameters

Name In Required Type Description
event_id path required string

The ID of the event to delete.

Responses

200

OK

404

Not Found

500

Internal Server Error

DELETE /event/events/{event_id}
GET /event/events/{event_id}

Retrieve a specific event by its ID.

operationId: Events_getById

Parameters

Name In Required Type Description
event_id path required string

The ID of the event to retrieve.

Responses

200

OK

404

Not Found

500

Internal Server Error

GET /event/events/{event_id}
PATCH /event/events/{event_id}

Use this endpoint to partially update event metadata.

operationId: Events_updateById

Parameters

Name In Required Type Description
event_id path required string

The ID of the event to update.

Request Body

required
application/json
schema BasePatchRequest
Property Type Required
pii boolean optional
tags array optional
teams array optional
owners array optional
verified boolean optional
published boolean optional
definition string optional
properties object optional
custom array optional
name string optional
type string optional
order integer optional
value string optional
collections array optional
description string optional
subscribers array optional

Responses

200

OK

404

Not Found

500

Internal Server Error

PATCH /event/events/{event_id}

Integrations 5 endpoints

GET /integration/integrations

This endpoint will return all the integrations active in your workspace.

operationId: Integrations_listActive

Parameters

Name In Required Type Description
type query optional string

The type of integrations to filter.

Responses

200

List of integrations.

400

Bad request.

500

Internal server error.

GET /integration/integrations
POST /integration/integrations

Use this endpoint to create a custom integration, or add credentials for a native integration programatically.

operationId: Integrations_createNewIntegration

Request Body

application/json
schema IntegrationsCreateNewIntegrationRequest
Property Type Required
name string optional
type string optional
teams array optional
credentials object optional

Responses

201

Integration created successfully.

400

Bad request.

500

Internal server error.

POST /integration/integrations
GET /integration/integrations/{integration_id}

This endpoint will provide the details of an individual integration.

operationId: Integrations_getById

Parameters

Name In Required Type Description
integration_id path required string

The ID of the integration to retrieve.

Responses

200

Integration details retrieved successfully.

404

Integration not found.

500

Internal server error.

GET /integration/integrations/{integration_id}
POST /integration/integrations/{integration_id}/import_jsonl_metadata

This endpoint allows the upload of integration metadata as well as integration lineage using a JSONL file. This can also be done through the UI. See more about JSONL uploads here.

operationId: Integrations_uploadJsonlMetadata

Parameters

Name In Required Type Description
integration_id path required string

The ID of the integration to upload metadata and/or lineage for.

Request Body

required
multipart/form-data
schema IntegrationsUploadJsonlMetadataRequest
Property Type Required
lineages_file string optional
resources_file string required

Responses

200

Integration JSONL file uploaded successfully.

404

Integration not found.

500

Internal server error.

POST /integration/integrations/{integration_id}/import_jsonl_metadata
POST /integration/integrations/{integration_id}/import_metadata

This endpoint allows the upload of integration metadata using a CSV. This can also be done through the UI. See more about CSV uploads here.

operationId: Integrations_uploadMetadataCsv

Parameters

Name In Required Type Description
integration_id path required string

The ID of the integration to upload metadata for.

Request Body

required
multipart/form-data
schema IntegrationsUploadMetadataCsvRequest
Property Type Required
file string optional

Responses

200

Integration metadata uploaded successfully.

404

Integration not found.

500

Internal server error.

POST /integration/integrations/{integration_id}/import_metadata

Lineage 1 endpoints

GET /lineage/manual

Get lineage objects with optional filtering by source and destination entity.

operationId: Lineage_listObjectsWithFiltering

Parameters

Name In Required Type Description
from_entity__in query optional string
to_entity__in query optional string

Responses

200

List of lineage entries.

400

Bad Request

500

Internal Server Error

GET /lineage/manual

Schemas

object BasePatchRequest
{
  "type": "object",
  "properties": {
    "pii": {
      "type": "boolean",
      "example": false,
      "description": "Indicates whether the resource contains personally identifiable information (PII). Values can be - <ul><li> True <li> False</ul>"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "04654d61-4f64-4f08-b697-3915b5137c49",
        "429693a2-a5e7-4525-b413-ece5e96bc5b3"
      ],
      "description": "A list of tag IDs associated with the resources."
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "e8ac09ed-e51e-4e61-8eaf-59942c98c260",
        "cca810f1-11c1-4117-bc23-20ae8020897f"
      ],
      "description": "A list of team IDs that the resource belongs to."
    },
    "owners": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "33733f42-8ff7-460b-9e20-50a2133d3bb0",
        "c90dedee-40ee-47ec-9c27-96dc3b2ec363"
      ],
      "description": "A list of owner user IDs for the resource."
    },
    "verified": {
      "type": "boolean",
      "example": true,
      "description": "Indicates whether the table has been set as verified. Values can be - <ul><li> True <li> False</ul>"
    },
    "published": {
      "type": "boolean",
      "example": true,
      "description": "Indicates if the resource is visible to viewers or not. Values can be - <ul><li> True <li> False</ul>"
    },
    "definition": {
      "type": "string",
      "example": "\\n# Castae illa\\n\\n## Finemque aequore\\n\\nLorem markdownum motus",
      "description": "Mark down documentation to be added to the resource."
    },
    "properties": {
      "type": "object",
      "properties": {
        "custom": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CustomProperties"
          }
        }
      },
      "description": "A list of custom properties to add to the resource."
    },
    "collections": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "3b2c7185-fb5d-4d94-89d4-3dae08e093a9"
      ],
      "description": "A list of collection IDs the resource belongs to."
    },
    "description": {
      "type": "string",
      "example": "This is a description for a sample table.",
      "description": "A description of the resource."
    },
    "subscribers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "c90dedee-40ee-47ec-9c27-96dc3b2ec363"
      ],
      "description": "A list of the added user IDs that have been subscribed to the resource. Anyone subscribed will be notified of any changes."
    }
  }
}
object BaseResourceRequest
{
  "type": "object",
  "properties": {
    "pii": {
      "type": "boolean",
      "example": false,
      "description": "Indicates whether the resource contains personally identifiable information (PII). Values can be - <ul><li> True <li> False</ul>"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "04654d61-4f64-4f08-b697-3915b5137c49",
        "429693a2-a5e7-4525-b413-ece5e96bc5b3"
      ],
      "description": "A list of tag IDs associated with the resources."
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "e8ac09ed-e51e-4e61-8eaf-59942c98c260",
        "cca810f1-11c1-4117-bc23-20ae8020897f"
      ],
      "description": "A list of team IDs that the resource belongs to."
    },
    "title": {
      "type": "string",
      "example": "Sample Title",
      "description": "The title of the resource."
    },
    "owners": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "33733f42-8ff7-460b-9e20-50a2133d3bb0",
        "c90dedee-40ee-47ec-9c27-96dc3b2ec363"
      ],
      "description": "A list of owner user IDs for the resource."
    },
    "parent": {
      "type": "string",
      "example": "df2c0597-13d9-4159-bb6d-00b3f54235dc",
      "description": "The ID of the parent resource. Please keep the resource heirarchy in mind when setting the parent."
    },
    "verified": {
      "type": "boolean",
      "example": true,
      "description": "Indicates whether the resource has been set as verified. Values can be - <ul><li> True <li> False</ul>"
    },
    "published": {
      "type": "boolean",
      "example": true,
      "description": "Indicates if the resource is visible to viewers or not. Values can be - <ul><li> True <li> False</ul>"
    },
    "definition": {
      "type": "string",
      "example": "\\n# Castae illa\\n\\n## Finemque aequore\\n\\nLorem markdownum motus",
      "description": "Mark down documentation to be added to the resource."
    },
    "properties": {
      "type": "object",
      "properties": {
        "custom": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CustomProperties"
          }
        }
      },
      "description": "A list of custom properties associated with the resource."
    },
    "collections": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "3b2c7185-fb5d-4d94-89d4-3dae08e093a9"
      ],
      "description": "A list of collection IDs the resource belongs to."
    },
    "description": {
      "type": "string",
      "example": "This is a description for a sample table.",
      "description": "A description of the resource."
    },
    "integration": {
      "type": "string",
      "example": "ca529385-fbc9-4934-afae-e372affe795b",
      "description": "The integration ID associated with the resource, if one exists."
    },
    "subscribers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "c90dedee-40ee-47ec-9c27-96dc3b2ec363"
      ],
      "description": "A list of user IDs that have been subscribed to the resource. Anyone subscribed will be notified of any changes."
    }
  }
}
object BaseResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "d935a76c-2125-4c30-9389-ef42fa7e23bb",
      "description": "The unique identifier of the resource."
    },
    "pii": {
      "type": "boolean",
      "example": true,
      "description": "Indicates if the resource contains Personally Identifiable Information (PII). Values can be - <ul> <li> True <li> False</ul>"
    },
    "url": {
      "type": "string",
      "example": "https://example.com/sample-table",
      "description": "The URL associated with the resource."
    },
    "icon": {
      "type": "string",
      "example": "icon-url.png",
      "description": "The icon associated with the resource."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "f7466f09-33bf-4ac2-9ff2-165fb4b8bdc2",
        "a17f4ed0-0e5a-45a9-92c0-6c93c0b8242c"
      ],
      "description": "List of tag IDs added to the resource."
    },
    "stale": {
      "type": "boolean",
      "example": false,
      "description": "Indicates if the resource is stale. This means this resource no longer exists in the source, as of the last extraction."
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "8680f886-97d2-4f4e-92c8-c80b46a3017d"
      ],
      "description": "List of team IDs associated with the resource."
    },
    "title": {
      "type": "string",
      "example": "Sample Table",
      "description": "The title of the resource."
    },
    "owners": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "429693a2-a5e7-4525-b413-ece5e96bc5b3",
        "f71585fa-251c-4102-8d81-c97c57c8d435"
      ],
      "description": "List of owner IDs for the resource."
    },
    "parent": {
      "type": "string",
      "example": "df2c0597-13d9-4159-bb6d-00b3f54235dc",
      "description": "The parent resource's ID."
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "8a3af948-026c-45d6-983d-3873f6156f86"
      ],
      "description": "List of other integrations associated with the resource. For example, if a description is pulled in from DBT for a Snowflake table, this field will reference DBT."
    },
    "archived": {
      "type": "boolean",
      "example": false,
      "description": "Indicates if the resource is deleted."
    },
    "verified": {
      "type": "boolean",
      "example": false,
      "description": "Indicates if the resource is verified. Values can be - <ul><li> True <li> False</ul>"
    },
    "published": {
      "type": "boolean",
      "example": false,
      "description": "Indicates if the resource is published and can be seen by Viewers."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-16T23:12:53.245493Z",
      "description": "The timestamp when the resource was created in Secoda in UTC format."
    },
    "definition": {
      "type": "string",
      "format": "markdown",
      "description": "The documentation of the resource, written in Mark Down format."
    },
    "properties": {
      "type": "object",
      "properties": {
        "custom": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CustomProperties"
          }
        }
      },
      "description": "A list of custom properties associated with the resource."
    },
    "title_full": {
      "type": "string",
      "example": "Sample Database.Sample Schema.Sample Table",
      "description": "The full title of the resource. This is a generated field"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-16T23:12:53.245507Z",
      "description": "The timestamp when the resource was last updated in Secoda in UTC format."
    },
    "collections": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "e8ac09ed-e51e-4e61-8eaf-59942c98c260"
      ],
      "description": "List of IDs representing the collection(s) that the resource has been added to."
    },
    "description": {
      "type": "string",
      "example": "This is a description for a sample table.",
      "description": "A description of the resource."
    },
    "entity_type": {
      "type": "string",
      "example": "table",
      "description": "The type of resource in Secoda."
    },
    "integration": {
      "type": "string",
      "example": "ca529385-fbc9-4934-afae-e372affe795b",
      "description": "The integration ID associated with the resource."
    },
    "native_type": {
      "type": "string",
      "example": "Dataset",
      "description": "The native type of the resource as it is referred to in the integration."
    },
    "subscribers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "33733f42-8ff7-460b-9e20-50a2133d3bb0",
        "c90dedee-40ee-47ec-9c27-96dc3b2ec363"
      ],
      "description": "List of User IDs who subscribe to the resource."
    },
    "title_cased": {
      "type": "string",
      "example": "sampleTable",
      "description": "The title in a cased format."
    },
    "total_usage": {
      "type": "integer",
      "example": 483,
      "description": "The total usage count for the resource."
    },
    "multiplayers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "429693a2-a5e7-4525-b413-ece5e96bc5b3",
        "f71585fa-251c-4102-8d81-c97c57c8d435"
      ],
      "description": "List of members who have opened or worked with the resource recently."
    },
    "workspace_id": {
      "type": "string",
      "example": "f71585fa-251c-4102-8d81-c97c57c8d435",
      "description": "The ID of the workspace."
    },
    "bookmarked_by": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "d935a76c-2125-4c30-9389-ef42fa7e23bb",
        "33733f42-8ff7-460b-9e20-50a2133d3bb0",
        "c90dedee-40ee-47ec-9c27-96dc3b2ec363"
      ],
      "description": "List of member IDs that have bookmarked the resource."
    },
    "owners_groups": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "3b2c7185-fb5d-4d94-89d4-3dae08e093a9"
      ],
      "description": "List of owner group IDs for the resource."
    },
    "children_count": {
      "type": "integer",
      "example": 2,
      "description": "The count of children entities of the resource."
    },
    "databuilder_id": {
      "type": "string",
      "example": "b818280a-ae1a-43bf-90d3-dbccf812b025.x68605bd2",
      "description": "The databuilder ID associated with the resource. This is a generated field."
    },
    "external_usage": {
      "type": "integer",
      "example": 38,
      "description": "The external usage count for the resource extracted from the source source. This is what is used to calculate Popularity of a resource."
    },
    "external_users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "33733f42-8ff7-460b-9e20-50a2133d3bb0"
      ],
      "description": "List of external user IDs for the resource extracted from the integration."
    },
    "internal_usage": {
      "type": "integer",
      "example": 3,
      "description": "The internal usage count for the resource."
    },
    "internal_users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "04654d61-4f64-4f08-b697-3915b5137c49"
      ],
      "description": "List of internal user IDs for the resource."
    },
    "search_metadata": {
      "type": "object",
      "example": {
        "type": "table",
        "schema": "secoda-glue",
        "cluster": "glue",
        "database": "awsdatacatalog"
      },
      "description": "Metadata related to indexing the resource for optimizing search."
    },
    "definition_version": {
      "type": "integer",
      "example": 1,
      "description": "The version of the resource's documentation."
    },
    "external_updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-16T23:12:53.245507Z",
      "description": "The timestamp of the last update for the resource in the source."
    },
    "current_user_permissions": {
      "type": "object",
      "properties": {
        "read": {
          "type": "boolean",
          "example": true
        },
        "write": {
          "type": "boolean",
          "example": true
        },
        "execute": {
          "type": "boolean",
          "example": false
        }
      },
      "description": "Permissions of the current user for this resource."
    },
    "multiplayer_last_modified": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-16T23:12:53.245507Z",
      "description": "The timestamp when the multiplayer was last modified in UTC format."
    },
    "multiplayer_last_modified_by": {
      "type": "string",
      "example": "429693a2-a5e7-4525-b413-ece5e96bc5b3",
      "description": "The last member who modified this resource."
    }
  }
}
object ChartResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "product": {
          "type": "string",
          "example": "tableau",
          "description": "Indicates the name of the integration."
        }
      }
    }
  ]
}
object ChartsListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ChartResponse"
          }
        }
      }
    }
  ]
}
object CollectionResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "pinned": {
          "type": "boolean",
          "example": false,
          "description": "Refers to whether the resource has been pinned by user."
        },
        "resource_count": {
          "type": "integer",
          "example": 0,
          "description": "Indicates how many resources are part of the collection."
        }
      }
    }
  ]
}
object CollectionsListCollectionsByTitleResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CollectionResponse"
          }
        }
      }
    }
  ]
}
object ColumnResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "is_pk": {
          "type": "boolean",
          "example": true,
          "description": "Whether the column is a primary key."
        },
        "hidden": {
          "type": "boolean",
          "description": "This is a deprecated field."
        },
        "data_type": {
          "type": "string",
          "example": "integer",
          "description": "Indicates the data type of the column."
        },
        "sort_order": {
          "type": "integer",
          "example": 3,
          "description": "Indicates the order the column should be in amongst the other columns"
        },
        "table_title": {
          "type": "string",
          "example": "customers",
          "description": "Indicates the name of the table that the column belongs to."
        },
        "table_schema": {
          "type": "string",
          "example": "secoda-glue",
          "description": "Indicates the name of the schema that the column belongs to."
        },
        "table_cluster": {
          "type": "string",
          "description": "This is a deprecated field."
        },
        "table_database": {
          "type": "string",
          "example": "aws-datacatalog",
          "description": "Indicates the name of the database that the column belongs to."
        }
      }
    }
  ]
}
object ColumnsGetListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ColumnResponse"
          }
        }
      }
    }
  ]
}
object CustomProperties
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Custom Property",
      "description": "The name of the custom property."
    },
    "type": {
      "enum": [
        "string",
        "number",
        "multiselect",
        "checkbox",
        "user",
        "resource",
        "date"
      ],
      "type": "string",
      "example": "string",
      "description": "The type of the custom property."
    },
    "order": {
      "type": "integer",
      "example": 1,
      "description": "The order of the custom property."
    },
    "value": {
      "type": "string",
      "example": "TestValue",
      "description": "The value of the custom property."
    }
  }
}
object DashboardGroupResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "visible": {
          "type": "boolean",
          "description": "This is a deprecated field."
        }
      }
    }
  ]
}
object DashboardGroupsListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/DashboardGroupResponse"
          }
        }
      }
    }
  ]
}
object DashboardResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "group": {
          "type": "string",
          "example": "Samples",
          "description": "Indicates the name of the group."
        },
        "product": {
          "type": "string",
          "example": "tableau",
          "description": "Indicates the name of the integration."
        }
      }
    }
  ]
}
object DashboardsListWithFilterResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/DashboardResponse"
          }
        }
      }
    }
  ]
}
object DatabasesListAllActiveResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BaseResponse"
          }
        }
      }
    }
  ]
}
object DocumentResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "parent_id": {
          "type": "string",
          "example": "1f5c76c3-e7a3-406f-b51e-7ba220244f1b",
          "description": "Indicates the UUID of the parent of the document, which is always another document."
        },
        "base_entity_id": {
          "type": "string",
          "example": "1f5c76c3-e7a3-406f-b51e-7ba220244f1b",
          "description": "Indicates the UUID of the highest level ancestor of the document."
        }
      }
    }
  ]
}
object DocumentsListDocumentsByTitleResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/DocumentResponse"
          }
        }
      }
    }
  ]
}
object EventCategoriesCreateNewCategoryRequest
{
  "type": "object",
  "properties": {
    "teams": {
      "type": "array",
      "items": {
        "description": "WARNING: Missing items property in array schema. Missing items property has been filled with this AnyType schema."
      },
      "example": [
        "e8ac09ede51e4e618eaf59942c98c260"
      ],
      "description": "The teams the category belongs to."
    },
    "title": {
      "type": "string",
      "example": "Landing Page",
      "description": "The name of the category."
    },
    "integration": {
      "type": "string",
      "description": "The UUID of the associated integration."
    }
  }
}
object EventCategoriesListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BaseResponse"
          }
        }
      }
    }
  ]
}
object EventPropertiesListEventPropertiesResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EventPropertyResponse"
          }
        }
      }
    }
  ]
}
object EventPropertyResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "enum": {
          "type": "string",
          "example": "red, green, yellow",
          "description": "If the property type is enum, this field indicates the various enum values."
        },
        "type": {
          "type": "string",
          "example": "enum",
          "description": "The type of property associated with the event. Examples include string, enum, integer, etc."
        },
        "is_required": {
          "type": "boolean",
          "description": "Set this to true if the property is required."
        }
      }
    }
  ]
}
object EventsListEventsByFilteringResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BaseResponse"
          }
        }
      }
    }
  ]
}
object IncidentResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "6ac1bff0-b85f-47e8-84fb-8dca29614785",
      "description": "The UUID of the incident."
    },
    "name": {
      "type": "string",
      "example": "Unique percentage incident",
      "description": "The name of the incident, which indicates the type of metric set for the monitor."
    },
    "value": {
      "type": "number",
      "example": 86.4081806,
      "description": "The value of the measurement at the time of incident creation."
    },
    "status": {
      "enum": [
        "acknowledged",
        "expired",
        "resolved",
        "active"
      ],
      "type": "string",
      "example": "active",
      "description": "The status of the incident."
    },
    "target": {
      "type": "string",
      "example": "c332407c-cfa4-47c9-8d83-31df72b30c20",
      "description": "The UUID of the target resource being monitored for anomolies."
    },
    "actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "notification_initial",
              "notification_reminder",
              "notification_resolved",
              "acknowledged",
              "resolved"
            ],
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "user_name": {
            "type": "string"
          }
        }
      },
      "example": [
        {
          "type": "notification_initial",
          "user_id": "e1250ab7-c4dc-4b9c-8963-105fa73d4ba5",
          "user_name": "John Doe"
        }
      ],
      "description": "A list of actions associated with the incident."
    },
    "monitor": {
      "type": "string",
      "example": "b45bc798-763d-4ca5-863a-c12a882967c9",
      "description": "The UUID of the associated monitor."
    },
    "summary": {
      "type": "string",
      "example": "Unique percentage incident",
      "description": "An automatically generated short summary of the incident."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-10-10T19:20:44.975657Z",
      "description": "When the incident was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-10-10T19:20:45.047238Z",
      "description": "The last updated time for the incident."
    },
    "resolved_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time that the incident was resolved. Will be null if the incident has not yet been resolved."
    },
    "last_seen_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-10-10T19:20:45.047056Z",
      "description": "The most recent occurence about this incident."
    },
    "first_seen_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-10-10T19:20:44.973632Z",
      "description": "The first time this incident was observed."
    },
    "acknowledged_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-11-10T19:20:44.975657Z",
      "description": "The time that the incident was acknowledged at. This will be null if an incident hasn't been acknowledged yet."
    },
    "display_metadata": {
      "type": "object",
      "properties": {
        "target": {
          "type": "object",
          "properties": {
            "icon": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "entity_type": {
              "type": "string",
              "example": "column",
              "description": "The type of resource the incident is associated with."
            },
            "integration": {
              "type": "string",
              "example": "0c6f8b1a-0c8f-4fdf-b95d-57da8f80ef82",
              "description": "The UUID of the integration associated with the resource."
            },
            "integration_type": {
              "type": "string",
              "example": "snowflake",
              "description": "The type of the integration that the resource is extracted from."
            }
          }
        },
        "monitor": {
          "type": "object",
          "properties": {
            "label": {
              "type": "string",
              "example": "Unique percentage on extraction_completed_at"
            }
          }
        }
      },
      "description": "This is an internally used object that provides additional information about the incident. This can be ignored by customers."
    },
    "last_notified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-10-10T19:20:45.047056Z",
      "description": "The time of the last notification sent about this incident."
    }
  }
}
object IntegrationResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "740904fe-e87d-44f8-8a91-b13631ff2812",
      "description": "The ID of the created integration."
    },
    "name": {
      "type": "string",
      "example": "Tableau",
      "description": "The name of the integration."
    },
    "type": {
      "type": "string",
      "example": "tableau",
      "description": "The type of integration."
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "e8ac09ed-e51e-4e61-8eaf-59942c98c260"
      ],
      "description": "List of team IDs associated with the integration."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-09-22T15:30:00Z",
      "description": "The timestamp when the integration was created in Secoda in UTC format."
    },
    "properties": {
      "type": "object",
      "description": "Additional properties associated with the integration."
    },
    "ssh_tunnel": {
      "type": "string",
      "example": "None",
      "description": "Information about SSH tunnel if one is set update."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-09-22T15:30:00Z",
      "description": "The timestamp when the integration was last updated in Secoda UTC format."
    },
    "credentials": {
      "type": "object",
      "example": {},
      "description": "The actual credentials of the integration will NOT be returned. Can you find the easter egg in this response parameter for native integrations?"
    },
    "workspace_id": {
      "type": "string",
      "example": "f71585fa-251c-4102-8d81-c97c57c8d435",
      "description": "The ID of the associated workspace."
    },
    "execute_access": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "f71585fa-251c-4102-8d81-c97c57c8d435"
      ],
      "description": "List of IDs that have the permission to trigger the extracton."
    },
    "preview_access_roles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "Admin",
        "Editor"
      ],
      "description": "List of roles that are allowed to preview the data in the integration. <ul><li> Admin <li> Editor <li> Viewer </ul>"
    },
    "preview_access_users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "f71585fa-251c-4102-8d81-c97c57c8d435"
      ],
      "description": "List of users IDs with access to preview the data in the integration."
    },
    "preview_access_groups": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "f71585fa-251c-4102-8d81-c97c57c8d435"
      ],
      "description": "List of users group IDs with access to preview the data in the integration."
    },
    "scheduled_extractions_hour": {
      "type": "integer",
      "example": 3,
      "description": "Hour for scheduled extractions. Will be null for custom extractions."
    },
    "scheduled_extractions_last_run": {
      "type": "string",
      "example": "2023-10-15T09:45:00Z",
      "description": "Last scheduled extraction run time (null in this response)."
    },
    "scheduled_extractions_next_run": {
      "type": "string",
      "format": "date-time",
      "example": "2023-10-15T09:45:00Z",
      "description": "Next scheduled extraction run time. Will be null for custom extractions."
    },
    "scheduled_extractions_frequency": {
      "type": "integer",
      "example": 7,
      "description": "Frequency in days of scheduled extractions. Will be null for custom extractions."
    }
  }
}
object IntegrationsCreateNewIntegrationRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Sample Integration",
      "description": "Represents the name of the integration data source or tool."
    },
    "type": {
      "type": "string",
      "example": "custom",
      "description": "This indicates the type of integration (e.g., \"custom\")."
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "4c0e07c0-306a-4f4e-8b2b-6a8d7a33d251",
        "a5423e2e-93b8-4b2c-af3c-7b7f0eefea14"
      ],
      "description": "Indicates the teams associated with this integration. The access can be edited in the UI."
    },
    "credentials": {
      "type": "object",
      "example": {},
      "description": "If you are adding a custom integration, the value of this parameter should always be empty {}."
    }
  }
}
object IntegrationsListActiveResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/IntegrationResponse"
          }
        }
      }
    }
  ]
}
object IntegrationsUploadJsonlMetadataRequest
{
  "type": "object",
  "required": [
    "resources_file"
  ],
  "properties": {
    "lineages_file": {
      "type": "string",
      "format": "binary",
      "example": "path/to/your/lineages_file.jsonl",
      "description": "The path to the your lineages file. The expected formatting of this file can be found [here](https://docs.secoda.co/integrations/custom-integration/import-your-resources/create-your-jsonl-file)."
    },
    "resources_file": {
      "type": "string",
      "format": "binary",
      "example": "path/to/your/resources_file.jsonl",
      "description": "The path to the your resources file. The expected formatting of this file can be found [here](https://docs.secoda.co/integrations/custom-integration/import-your-resources/create-your-jsonl-file)."
    }
  }
}
object IntegrationsUploadMetadataCsvRequest
{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "example": "path/to/your/file.csv",
      "description": "The path to the CSV file containing your metadata and resources. The format of the CSV file can be found [here](https://docs.secoda.co/integrations/custom-integration/import-your-resources/create-your-csv)."
    }
  }
}
object LineageCreateNewLineageManuallyRequest
{
  "type": "object",
  "properties": {
    "direction": {
      "type": "string",
      "example": "DOWNSTREAM",
      "description": "Represents the flow of the resource data. Values can be - <ul> <li> Upstream <li> Downstream</ul>"
    },
    "to_entity": {
      "type": "string",
      "example": "b500ef23-c9b4-4259-a87d-d77b8b588f06",
      "description": "Points to the final destination of the resouce data through various transformations and entities."
    },
    "from_entity": {
      "type": "string",
      "example": "7879886b-9e0e-4d02-8b37-c7d3c496a587",
      "description": "Indicates the source of the resource data."
    }
  }
}
object LineageListObjectsWithFilteringResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/LineageResponse"
          }
        }
      }
    }
  ]
}
object LineageResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "d935a76c-2125-4c30-9389-ef42fa7e23bb",
      "description": "The unique identifier of the resource."
    },
    "direction": {
      "enum": [
        "UPSTREAM",
        "DOWNSTREAM"
      ],
      "type": "string",
      "example": "DOWNSTREAM",
      "description": "Represents the flow of data between the source and destination. Values can be - <ul> <li> Upstream <li> Downstream</ul>"
    },
    "is_manual": {
      "type": "boolean",
      "example": true,
      "description": "Represents if data lineage is manually created or not. Values can be - <ul><li> True <li> False </ul>"
    },
    "to_entity": {
      "type": "string",
      "example": "b500ef23-c9b4-4259-a87d-d77b8b588f06",
      "description": "Indicates the destination resource of the lineage."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-16T23:12:53.245493Z",
      "description": "The timestamp when the resource was created in Secoda in UTC format."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-16T23:12:53.245507Z",
      "description": "The timestamp when the resource was last updated in Secoda in UTC format."
    },
    "from_entity": {
      "type": "string",
      "example": "7879886b-9e0e-4d02-8b37-c7d3c496a587",
      "description": "Indicates the source resource of the lineage."
    }
  }
}
object ListResponse
{
  "type": "object",
  "properties": {
    "meta": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "example": 1,
          "description": "The current page number."
        },
        "next_page": {
          "type": "integer",
          "example": 2,
          "description": "The next page number (null if on the last page)."
        },
        "previous_page": {
          "type": "integer",
          "example": null,
          "description": "The previous page number (null if on the first page)."
        }
      },
      "description": "Reprents the meta data of the response."
    },
    "count": {
      "type": "integer",
      "example": 315,
      "description": "The total count of items returned."
    },
    "links": {
      "type": "object",
      "properties": {
        "next": {
          "type": "string",
          "example": "https://api.secoda.co/resource/all/?page=2",
          "description": "The link to the next page (null if there are no more pages)."
        },
        "previous": {
          "type": "string",
          "example": "None",
          "description": "The link to the previous page (null if on the first page)."
        }
      },
      "description": "Indicates Links to associated pages."
    },
    "total_pages": {
      "type": "integer",
      "example": 7,
      "description": "The total number of pages."
    }
  }
}
object MeasurementResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "6ac1bff0-b85f-47e8-84fb-8dca29614785",
      "description": "The UUID of the measurement."
    },
    "value": {
      "type": "number",
      "example": 90.81823317519981,
      "description": "The exact value at the time of measurement."
    },
    "monitor": {
      "type": "string",
      "example": "102ac399-6e3a-42dd-a710-dbbb6b2addbe",
      "description": "The UUID of the associated monitor."
    },
    "incident": {
      "type": "string",
      "example": "102ac399-6e3a-42dd-a710-dbbb6b2addbe",
      "nullable": true,
      "description": "The UUID of the associated incident, if it exists. Otherwise, this is set to null."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-10-03T04:46:24.290765Z",
      "description": "Timestamp of when the measurement was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-10-03T04:46:24.290765Z",
      "description": "Timestamp of the when the measurement was updated."
    },
    "lower_threshold": {
      "type": "number",
      "example": 87.83219024929676,
      "description": "The lower threshold of the measurement. A value crossing this threshold will trigger an incident. The threshold will be set to null when one is not configured, or the monitor is still learning the thresholds.\n"
    },
    "upper_threshold": {
      "type": "number",
      "example": 90.64496791804484,
      "description": "The upper threshold of the measurement. A value crossing this threshold will trigger an incident. The threshold will be set to null when one is not configured, or the monitor is still learning the thresholds.\n"
    },
    "incident_metadata": {
      "type": "string",
      "description": "Additional information about the incident."
    }
  }
}
object MetricResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "sql": {
          "type": "string",
          "example": "select * from snowflake_sample_data.temp.store;",
          "description": "The sql statement underlying the metric."
        },
        "time": {
          "type": "string",
          "example": "store_open_date",
          "description": "The name of the column that should populate the X axis. The data type of the column should be datetime."
        },
        "primary": {
          "type": "string",
          "example": "store_orders",
          "description": "The name of the column that should populate the Y axis. The data type of the column should be a number or integer."
        },
        "last_run": {
          "type": "string",
          "format": "datetime",
          "example": "2024-03-18T21:02:30.294932Z",
          "description": "The last time the metric was run."
        },
        "dimension": {
          "type": "string",
          "example": "store_region",
          "description": "The name of the column by which results should be grouped by. Can be None if no dimensions are desired."
        },
        "last_error": {
          "type": "string",
          "example": "None",
          "description": "If the last run failed, the error message will show up here."
        },
        "last_status": {
          "type": "string",
          "example": "completed",
          "description": "Whether the last run was successful. The status can also be pending if a run hasn't occured yet."
        },
        "metric_type": {
          "type": "string",
          "example": "line",
          "description": "The type of graph created from the metric. Currently, only a line graph is supported."
        }
      }
    }
  ]
}
object MetricsCreateNewMetricRequest
{
  "type": "object",
  "required": [
    "title",
    "sql",
    "integration"
  ],
  "properties": {
    "sql": {
      "type": "string",
      "example": "select * from snowflake_sample_data.temp.store;",
      "description": "The sql statement underlying the metric."
    },
    "time": {
      "type": "string",
      "example": "store_open_date",
      "description": "The name of the column that should populate the X axis. The data type of the column should be datetime."
    },
    "title": {
      "type": "string",
      "example": "AOV",
      "description": "The name given to your metric."
    },
    "primary": {
      "type": "string",
      "example": "store_orders",
      "description": "The name of the column that should populate the Y axis. The data type of the column should be a number or integer."
    },
    "dimension": {
      "type": "string",
      "example": "store_region",
      "description": "The name of the column by which results should be grouped by. Can be None if no dimensions are desired."
    },
    "description": {
      "type": "string",
      "example": "Average order value over time.",
      "description": "A description for your metric."
    },
    "integration": {
      "type": "string",
      "example": "90ca77b2-65af-4042-8aee-dc9b203568f0",
      "description": "The UUID of the integration that the metric is run on."
    },
    "scheduled_delta": {
      "type": "integer",
      "example": 1,
      "description": "The frequency with which the metric should run, in hours. The first run can be triggered through the UI or by using the /execute endpoint."
    }
  }
}
object MetricsListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MetricResponse"
          }
        }
      }
    }
  ]
}
object MetricsRunMetricExecutionRequest
{
  "type": "object",
  "description": "An empty payload is required to execute the metric."
}
object MetricsRunMetricExecutionResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "5e8baa7c-8221-42b8-9d39-5718d4bc063e",
      "description": "ID of the metric."
    },
    "logs": {
      "type": "string"
    },
    "user": {
      "type": "string",
      "example": "33733f42-8ff7-460b-9e20-50a2133d3bb0",
      "description": "The ID of the user that has run the metric."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2024-04-09T21:10:40.532Z"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2024-04-09T21:10:40.532Z"
    }
  }
}
object MetricsUpdateMetricByIdRequest
{
  "type": "object",
  "properties": {
    "sql": {
      "type": "string",
      "example": "select * from snowflake_sample_data.temp.store;",
      "description": "The sql statement underlying the metric."
    },
    "title": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "scheduled_delta": {
      "type": "string"
    }
  }
}
object MonitorResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "886337a0-f298-4259-84dc-710879c826de",
      "description": "The unique identifier of the monitor."
    },
    "name": {
      "type": "string",
      "example": "Null percentage in amount",
      "description": "The full name of the monitor, includes the metric type and target resource."
    },
    "status": {
      "enum": [
        "normal",
        "incident",
        "error",
        "learning",
        "inactive"
      ],
      "type": "string",
      "example": "incident",
      "description": "The status of the monitor."
    },
    "target": {
      "type": "string",
      "example": "11db7782-4030-4acf-93e4-85aff3b860a1",
      "description": "The identifier of the resource that the monitor is watching."
    },
    "frequency": {
      "type": "integer",
      "example": 24,
      "description": "The frequency with which this monitor is run."
    },
    "workspace": {
      "type": "string",
      "example": "e051db43-cda6-42dc-8a69-12d1aefc3a91",
      "description": "The identifier of the workspace."
    },
    "created_at": {
      "type": "string",
      "example": "2023-10-12T14:59:58.781935Z",
      "description": "The timestamp when the monitor was created."
    },
    "is_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the monitor is enabled."
    },
    "updated_at": {
      "type": "string",
      "example": "2023-10-12T15:06:19.251573Z",
      "description": "The timestamp when the data was last updated."
    },
    "integration": {
      "type": "string",
      "example": "337c5803-b484-4128-a24d-dcc55dee2ea2",
      "description": "The identifier of the integration associated with the resource."
    },
    "metric_type": {
      "enum": [
        "row_count",
        "cardinality",
        "mean",
        "max",
        "min",
        "unique_percentage",
        "null_percentage",
        "freshness",
        "custom_sql"
      ],
      "type": "string",
      "example": "null_percentage",
      "description": "The type of metric."
    },
    "next_run_at": {
      "type": "string",
      "example": "2023-10-13T15:03:40.693728Z",
      "description": "The timestamp for the next run. Note, the run may occur shortly after the time set, but never before."
    },
    "last_error_at": {
      "type": "string",
      "example": null,
      "description": "The timestamp of the last error, if any."
    },
    "last_incident": {
      "type": "string",
      "example": "102ac399-6e3a-42dd-a710-dbbb6b2addbe",
      "description": "The UUID of the last active incident. If there are no active incidents (if the last incident has been closed), the field is set to null."
    },
    "metric_config": {
      "type": "string",
      "description": "Configuration for the metric."
    },
    "last_success_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-09-29T17:46:22.552345Z",
      "description": "The timestamp of the last check on Secoda's access and ability to read the data source on which this monitor is set. This is connctivity check - not a data quality check."
    },
    "display_metadata": {
      "type": "object",
      "properties": {
        "target": {
          "type": "object",
          "properties": {
            "icon": {
              "type": "string",
              "example": null,
              "description": "Icon associated with the target resource, if one exists."
            },
            "label": {
              "type": "string",
              "example": "amount",
              "description": "Title of the target resource."
            },
            "entity_type": {
              "type": "string",
              "example": "column",
              "description": "The type of the target resource (e.g., column)."
            },
            "integration": {
              "type": "string",
              "example": "337c5803-b484-4128-a24d-dcc55dee2ea2",
              "description": "The UUID of the integration from which the target resource is extracted."
            },
            "integration_type": {
              "type": "string",
              "example": "redshift",
              "description": "The type of integration."
            }
          }
        }
      },
      "description": "This is an internally used object that provides additional information about the incident. This can be ignored by customers."
    },
    "last_measurement": {
      "type": "string",
      "example": "5d6ad413-5f74-41d6-b2f5-870b6f04de5c",
      "description": "The identifier of the last measurement."
    },
    "last_attempted_at": {
      "type": "string",
      "example": "2023-10-12T15:03:40.693728Z",
      "description": "The timestamp of the last attempted monitor."
    },
    "last_error_message": {
      "type": "string",
      "example": "",
      "description": "The message associated with the last error, if any."
    },
    "condition_manual_max": {
      "type": "integer",
      "example": null,
      "description": "The manual maximum condition if set by the user."
    },
    "condition_manual_min": {
      "type": "integer",
      "example": null,
      "description": "The manual minimum condition if set by the user."
    },
    "last_measurement_value": {
      "type": "number",
      "example": 1234.56,
      "description": "The last measured value if one is available."
    },
    "condition_auto_sensitivity": {
      "type": "integer",
      "example": 5,
      "description": "The automatic sensitivity condition."
    }
  }
}
object MonitorsListIncidentsResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/IncidentResponse"
          }
        }
      }
    }
  ]
}
object MonitorsListMeasurementsResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MeasurementResponse"
          }
        }
      }
    }
  ]
}
object MonitorsListMonitorsResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MonitorResponse"
          }
        }
      }
    }
  ]
}
object QueriesGetListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/QueryResponse"
          }
        }
      }
    }
  ]
}
object QueryResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "freq": {
          "type": "integer",
          "example": 0,
          "description": "Represents the frequency with which the query is running. Currently this will be returned as 0."
        },
        "type": {
          "type": "string",
          "example": "None",
          "description": "Indicates the type of query. Currently this is returned as None."
        }
      }
    }
  ]
}
object QuestionResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseResponse"
    },
    {
      "type": "object",
      "properties": {
        "answer": {
          "type": "string",
          "example": "This is the answer to the question.",
          "description": "Represents the verified answer of the question."
        },
        "status": {
          "type": "string",
          "example": "UNANSWERED",
          "description": "Indicates the status of the question. Values can be - <ul><li> Answered <li> Unanswered </ul>"
        },
        "priority": {
          "type": "string",
          "example": "High",
          "description": "Indicates the priority of the question or request."
        },
        "reactions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "👍"
          ],
          "description": "Represents the emoji reactions to a question."
        },
        "votes_sum": {
          "type": "integer",
          "example": 5,
          "description": "Indicates the  amount of votes for the quesion."
        },
        "assigned_to": {
          "type": "string",
          "example": "33733f42-8ff7-460b-9e20-50a2133d3bb0",
          "description": "Represents the user whom the question is assigned to."
        },
        "current_user_vote": {
          "type": "integer",
          "example": 4,
          "description": "Represents the vote number of the current user."
        }
      }
    }
  ]
}
object QuestionsCreateNewReplyRequest
{
  "type": "object",
  "properties": {
    "owners": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "33733f42-8ff7-460b-9e20-50a2133d3bb0",
        "description": "Defines the UUIDs that are the owners of the replies."
      }
    },
    "parent": {
      "type": "string",
      "example": "7795133a-6e36-4ef2-b95a-664babb99b71",
      "description": "The unique identifier of the parent question"
    },
    "definition": {
      "type": "string",
      "example": "Replying to the question",
      "description": "The answer of the reply"
    },
    "accepted_answer": {
      "type": "boolean",
      "example": false,
      "description": "Indicates if the answer is accepted or not. Values can be - <ul> <li> True <li> False</ul>"
    }
  }
}
object QuestionsEditReplyByIdRequest
{
  "type": "object",
  "properties": {
    "definition": {
      "type": "string",
      "example": "Changing the answer.",
      "description": "The updated definition for the reply"
    },
    "accepted_answer": {
      "type": "boolean",
      "example": false,
      "description": "Indicates if the answer is accepted or not. Values can be - <ul> <li> True <li> False</ul>"
    }
  }
}
object QuestionsGetListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/QuestionResponse"
          }
        }
      }
    }
  ]
}
object QuestionsListRepliesResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ListResponse"
    },
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ReplyResponse"
          }
        }
      }
    }
  ]
}