diff --git a/components/ConnectorsInfo/ConnectorsInfo.constants.ts b/components/ConnectorsInfo/ConnectorsInfo.constants.ts index 20383c77e..b0a6c107b 100644 --- a/components/ConnectorsInfo/ConnectorsInfo.constants.ts +++ b/components/ConnectorsInfo/ConnectorsInfo.constants.ts @@ -1,247 +1,303 @@ -export const connectorsArr = [ - { - name: "Airbyte", - icon: "./images/connectors/airbyte.png", - url: "/connectors/pipeline/airbyte", - }, - { - name: "Airflow", - icon: "./images/connectors/airflow.png", - url: "/connectors/pipeline/airflow", - }, - { - name: "Amundsen", - icon: "./images/connectors/amundsen.png", - url: "/connectors/metadata/amundsen", - }, - { - name: "Athena", - icon: "./images/connectors/athena.png", - url: "/connectors/database/athena", - }, - { - name: "Atlas", - icon: "./images/connectors/atlas.png", - url: "/connectors/metadata/atlas", - }, - { - name: "AzureSQL", - icon: "./images/connectors/azuresql.png", - url: "/connectors/database/azuresql", - }, - { - name: "BigQuery", - icon: "./images/connectors/bigquery.png", - url: "/connectors/database/bigquery", - }, - { - name: "Clickhouse", - icon: "./images/connectors/clickhouse.png", - url: "/connectors/database/clickhouse", - }, - { - name: "Databricks", - icon: "./images/connectors/databrick.png", - url: "/connectors/database/databricks", - }, - { - name: "dbt", - icon: "./images/connectors/dbt.png", - url: "/connectors/ingestion/workflows/dbt/ingest-dbt-ui", - }, - { - name: "DeltaLake", - icon: "./images/connectors/delta-lake.png", - url: "/connectors/database/deltalake", - }, - { - name: "Domo", - icon: "./images/connectors/domo.png", - url: "/connectors/database/domo", - }, - { - name: "Druid", - icon: "./images/connectors/druid.png", - url: "/connectors/database/druid", - }, - { - name: "DynamoDB", - icon: "./images/connectors/dynamodb.png", - url: "/connectors/database/dynamodb", - }, - { - name: "Glue", - icon: "./images/connectors/glue.png", - url: "/connectors/database/glue", - }, - { - name: "GCS", - icon: "./images/connectors/googleCloudService.png", - url: "/connectors/database/datalake", - }, - { - name: "Hive", - icon: "./images/connectors/hive.png", - url: "/connectors/database/hive", - }, - { - name: "Impala", - icon: "./images/connectors/impala.png", - url: "/connectors/database/impala", - }, - { - name: "DB2", - icon: "./images/connectors/ibmdb2.png", - url: "/connectors/database/db2", - }, - { - name: "Kafka", - icon: "./images/connectors/kafka.png", - url: "/connectors/messaging/kafka", - }, - { - name: "Kinesis", - icon: "./images/connectors/kinesis.png", - url: "/connectors/messaging/kinesis", - }, - { - name: "Looker", - icon: "./images/connectors/looker.png", - url: "/connectors/dashboard/looker", - }, - { - name: "MariaDB", - icon: "./images/connectors/mariadb.png", - url: "/connectors/messaging/mariadb", - }, - { - name: "Metabase", - icon: "./images/connectors/metabase.png", - url: "/connectors/dashboard/metabase", - }, - { - name: "MLFlow", - icon: "./images/connectors/mlflow.png", - url: "/connectors/ml-model/mlflow", - }, - { - name: "Mode", - icon: "./images/connectors/mode.png", - url: "/connectors/dashboard/mode", - }, - { - name: "Mssql", - icon: "./images/connectors/mssql.png", - url: "/connectors/database/mssql", - }, - { - name: "Oracle", - icon: "./images/connectors/oracle.png", - url: "/connectors/database/oracle", - }, - { - name: "PinotDB", - icon: "./images/connectors/pinot.png", - url: "/connectors/database/pinotdb", - }, - { - name: "Postgres", - icon: "./images/connectors/post.png", - url: "/connectors/database/postgres", - }, - { - name: "PowerBI", - icon: "./images/connectors/power-bi.png", - url: "/connectors/dashboard/powerbi", - }, - { - name: "Presto", - icon: "./images/connectors/presto.png", - url: "/connectors/database/presto", - }, - { - name: "Qliksense", - icon: "./images/connectors/qliksense.png", - url: "/connectors/dashboard/qliksense", - }, - { - name: "Quicksight", - icon: "./images/connectors/quicksight.png", - url: "/connectors/dashboard/quicksight", - }, - { - name: "Redash", - icon: "./images/connectors/redash.png", - url: "/connectors/dashboard/redash", - }, - { - name: "Redpanda", - icon: "./images/connectors/redpanda.png", - url: "/connectors/messaging/redpanda", - }, - { - name: "Redshift", - icon: "./images/connectors/redshift.png", - url: "/connectors/database/redshift", - }, - { - name: "Salesforce", - icon: "./images/connectors/salesforce.png", - url: "/connectors/database/salesforce", - }, - { - name: "Sagemaker", - icon: "./images/connectors/sagemaker.png", - url: "/connectors/ml-model/sagemaker", - }, - { - name: "SingleStore", - icon: "./images/connectors/singlestore.png", - url: "/connectors/database/singlestore", - }, - { - name: "Snowflake", - icon: "./images/connectors/snowflakes.png", - url: "/connectors/database/snowflake", - }, - { - name: "MongoDB", - icon: "./images/connectors/mongodb.png", - url: "/connectors/database/mongodb", - }, - { - name: "MySQL", - icon: "./images/connectors/sql.png", - url: "/connectors/database/mysql", - }, - { - name: "S3", - icon: "./images/connectors/amazon-s3.png", - url: "/connectors/storage/s3", - }, - { - name: "Sap Hana", - icon: "./images/connectors/saphana.png", - url: "/connectors/database/saphana", - }, - { - name: "Superset", - icon: "./images/connectors/superset.png", - url: "/connectors/dashboard/superset", - }, - { - name: "Tableau", - icon: "./images/connectors/tableau.png", - url: "/connectors/dashboard/tableau", - }, - { - name: "Trino", - icon: "./images/connectors/trino.png", - url: "/connectors/database/trino", - }, - { - name: "Vertica", - icon: "./images/connectors/vertica.png", - url: "/connectors/database/vertica", +export const CONNECTORS = [ + { + connector: "Database", + services: [ + { + url: "/connectors/database/athena", + icon: "./images/connectors/athena.png", + name: "Athena", + }, + { + url: "/connectors/database/datalake", + icon: "./images/connectors/amazon-s3.png", + name: "Amazon S3", + }, + { + url: "/connectors/database/azuresql", + icon: "./images/connectors/azuresql.png", + name: "Azure SQL", + }, + { + url: "/connectors/database/bigquery", + icon: "./images/connectors/bigquery.png", + name: "BigQuery", + }, + { + url: "/connectors/database/clickhouse", + icon: "./images/connectors/clickhouse.png", + name: "ClickHouse", + }, + { + url: "/connectors/database/deltalake", + icon: "./images/connectors/delta-lake.png", + name: "Delta Lake", + }, + { + url: "/connectors/database/druid", + icon: "./images/connectors/druid.png", + name: "Druid", + }, + { + url: "/connectors/database/databricks", + icon: "./images/connectors/databrick.png", + name: "Databricks", + }, + { + url: "/connectors/database/domo-database", + icon: "./images/connectors/domo.png", + name: "Domo", + }, + { + url: "/connectors/database/dynamodb", + icon: "./images/connectors/dynamodb.png", + name: "DynamoDB", + }, + { + url: "/connectors/database/glue", + icon: "./images/connectors/glue.png", + name: "Glue", + }, + { + url: "/connectors/database/datalake", + icon: "./images/connectors/googleCloudService.png", + name: "GCS", + }, + { + url: "/connectors/database/hive", + icon: "./images/connectors/hive.png", + name: "Hive", + }, + { + url: "/connectors/database/db2", + icon: "./images/connectors/ibmdb2.png", + name: "IBM Db2", + }, + { + url: "/connectors/database/impala", + icon: "./images/connectors/impala.png", + name: "Impala", + }, + { + url: "/connectors/database/mariadb", + icon: "./images/connectors/mariadb.png", + name: "MariaDB", + }, + { + url: "/connectors/database/mssql", + icon: "./images/connectors/mssql.png", + name: "MSSQL", + }, + { + url: "/connectors/database/mysql", + icon: "./images/connectors/sql.png", + name: "MySQL", + }, + { + url: "/connectors/database/oracle", + icon: "./images/connectors/oracle.png", + name: "Oracle", + }, + { + url: "/connectors/database/postgres", + icon: "./images/connectors/post.png", + name: "Postgres", + }, + { + url: "/connectors/database/presto", + icon: "./images/connectors/presto.png", + name: "Presto", + }, + { + url: "/connectors/database/redshift", + icon: "./images/connectors/redshift.png", + name: "Redshift", + }, + { + url: "/connectors/database/salesforce", + icon: "./images/connectors/salesforce.png", + name: "Salesforce", + }, + { + url: "/connectors/database/snowflake", + icon: "./images/connectors/snowflakes.png", + name: "Snowflake", + }, + { + url: "/connectors/database/singlestore", + icon: "./images/connectors/singlestore.png", + name: "SingleStore", + }, + { + url: "/connectors/database/trino", + icon: "./images/connectors/trino.png", + name: "Trino", + }, + { + url: "/connectors/database/vertica", + icon: "./images/connectors/vertica.png", + name: "Vertica", + }, + { + url: "/connectors/database/pinotdb", + icon: "./images/connectors/pinot.png", + name: "Pinot", + }, + { + url: "/connectors/database/sqlite", + icon: "./images/connectors/sqllite.png", + name: "SQL Lite", + }, + { + url: "#", + icon: "./images/connectors/iceberg.png", + name: "Apache Iceberg", + }, + ], + }, + { + connector: "Messaging", + services: [ + { + url: "/connectors/messaging/kafka", + icon: "./images/connectors/kafka.png", + name: "Kafka", + }, + { + url: "/connectors/messaging/redpanda", + icon: "./images/connectors/redpanda.png", + name: "Redpanda", + }, + { + url: "/main-concepts/metadata-standard/schemas/entity/services/connections/messaging/pulsarconnection", + icon: "./images/connectors/pulsar.png", + name: "Pulsar", + }, + + { + url: "/connectors/messaging/kinesis", + icon: "./images/connectors/kinesis.png", + name: "AWS Kinesis", + }, + ], + }, + { + connector: "Dashboard", + services: [ + { + url: "/connectors/dashboard/looker", + icon: "./images/connectors/looker.png", + name: "Looker", + }, + { + url: "/connectors/dashboard/metabase", + icon: "./images/connectors/metabase.png", + name: "Metabase", + }, + { + url: "/connectors/dashboard/mode", + icon: "./images/connectors/mode.png", + name: "Mode", + }, + { + url: "/connectors/dashboard/powerbi", + icon: "./images/connectors/power-bi.png", + name: "Power BI", + }, + { + url: "/connectors/dashboard/redash", + icon: "./images/connectors/redash.png", + name: "Redash", + }, + { + url: "/connectors/dashboard/superset", + icon: "./images/connectors/superset.png", + name: "Superset", + }, + { + url: "/connectors/dashboard/tableau", + icon: "./images/connectors/tableau.png", + name: "Tableau", + }, + { + url: "/connectors/dashboard/quicksight", + icon: "./images/connectors/quicksight.png", + name: "AWS QuickSight", + }, + ], + }, + { + connector: "Pipeline", + services: [ + { + url: "/connectors/pipeline/airflow", + icon: "./images/connectors/airflow.png", + name: "Airflow", + }, + { + url: "/connectors/pipeline/airbyte", + icon: "./images/connectors/airbyte.png", + name: "Airbyte", + }, + { + url: "/connectors/pipeline/dagster", + icon: "./images/connectors/dagster.png", + name: "Dagster", + }, + { + url: "/connectors/pipeline/fivetran", + icon: "./images/connectors/fivetran.png", + name: "Fivetran", + }, + { + url: "/connectors/pipeline/nifi", + icon: "./images/connectors/apachenifi.png", + name: "Apache NiFi", + }, + ], + }, + { + connector: "Mlmodel", + services: [ + { + url: "/connectors/ml-model/mlflow", + icon: "./images/connectors/mlflow.png", + name: "MLflow", + }, + { + url: "/connectors/ml-model/sagemaker", + icon: "./images/connectors/sagemaker.png", + name: "AWS SageMaker", + }, + ], + }, + { + connector: "Metadata", + services: [ + { + url: "/connectors/metadata/amundsen", + icon: "./images/connectors/amundsen.png", + name: "Amundsen", + }, + { + url: "/connectors/metadata/atlas", + icon: "./images/connectors/atlas.png", + name: "Atlas", + }, + ], + }, + { + connector: "Others", + services: [ + { + url: "#", + icon: "./images/connectors/ldap.png", + name: "LDAP", + }, + { + url: "#", + icon: "./images/connectors/sqlalchemy.png", + name: "SQLAlchemy", + }, + ], }, ]; diff --git a/components/ConnectorsInfo/ConnectorsInfo.module.css b/components/ConnectorsInfo/ConnectorsInfo.module.css index a642a4f50..c6cfe1277 100644 --- a/components/ConnectorsInfo/ConnectorsInfo.module.css +++ b/components/ConnectorsInfo/ConnectorsInfo.module.css @@ -1,13 +1,54 @@ -.Container { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; - gap: 30px; +.Container{ + display: flex; + gap: 8px; + height: 500px; + overflow-y: hidden; +} + +.TabsContainer{ + flex: 0 0 auto; + width: 200px; + padding-right: 16px; + border-right: 1px solid var(--default-border-color); +} + +.TabItem{ + padding: 8px; + cursor: pointer; + border-radius: 4px; +} + +.TabItem:hover{ + background-color: var(--primary-background-color); +} + +.SelectedTab{ + border: 0.5px solid var(--select-border-color); + background-color: var(--primary-background-color); + color: var(--primary-color); + font-weight: 600; +} + +.ConnectorsContainer{ + max-height: 100%; + overflow-y: scroll; +} + +.ConnectorsGridContainer { + display: flex; + flex-wrap: wrap; + justify-items: flex-start; + justify-content: flex-start; + height: fit-content; + gap: 20px; + padding: 16px; } .ConnectorItem { color: var(--default-text-color); display: flex; - height: 100%; + height: 65px; + width: 200px; align-items: center; gap: 10px; transition: box-shadow 0.2s linear; @@ -29,25 +70,25 @@ } @media (max-width: 1200px) { - .Container { + .ConnectorsGridContainer { grid-template-columns: 1fr 1fr 1fr 1fr; } } @media (max-width: 900px) { - .Container { + .ConnectorsGridContainer { grid-template-columns: 1fr 1fr 1fr; } } @media (max-width: 600px) { - .Container { + .ConnectorsGridContainer { grid-template-columns: 1fr 1fr; } } @media (max-width: 600px) { - .Container { + .ConnectorsGridContainer { gap: 16px; } .ConnectorImg { diff --git a/components/ConnectorsInfo/ConnectorsInfo.tsx b/components/ConnectorsInfo/ConnectorsInfo.tsx index 9b32ef535..17c5f610d 100644 --- a/components/ConnectorsInfo/ConnectorsInfo.tsx +++ b/components/ConnectorsInfo/ConnectorsInfo.tsx @@ -1,23 +1,70 @@ -import React from "react"; -import { connectorsArr } from "./ConnectorsInfo.constants"; -import styles from "./ConnectorsInfo.module.css"; +import classNames from "classnames"; +import { sortBy } from "lodash"; import Link from "next/link"; +import { useState } from "react"; +import { CONNECTORS } from "./ConnectorsInfo.constants"; +import styles from "./ConnectorsInfo.module.css"; + +interface ConnectorCategory { + connector: string; + services: { + url: string; + icon: string; + name: string; + }[]; +} + +CONNECTORS.unshift({ + connector: "All connectors", + services: CONNECTORS.reduce((prev, curr) => { + return sortBy( + [...prev, ...curr.services], + [(connector) => connector.name.toLowerCase()] + ); + }, [] as ConnectorCategory["services"]), +}); export default function ConnectorsInfo() { + const [selectedTab, setSelectedTab] = useState( + CONNECTORS[0] + ); + return (
- {connectorsArr.map((connector) => ( - -
- {connector.name} -

{connector.name}

+
+ {CONNECTORS.map((connectorCategory) => ( +
setSelectedTab(connectorCategory)} + > + {connectorCategory.connector}
- - ))} + ))} +
+
+
+ {selectedTab.services.map((connector) => ( + + {connector.name} +

{connector.name}

+ + ))} +
+
); } diff --git a/components/HowToGuidesHeader/HowToGuidesHeader.tsx b/components/HowToGuidesHeader/HowToGuidesHeader.tsx index 6f7afef43..a3df0c3d7 100644 --- a/components/HowToGuidesHeader/HowToGuidesHeader.tsx +++ b/components/HowToGuidesHeader/HowToGuidesHeader.tsx @@ -32,7 +32,7 @@ function HowToGuidesHeader() { padding: "8px 12px", }} type="link" - href="/how-to-guides/openmetadata/data-discovery" + href="/how-to-guides/data-discovery" > Get Started diff --git a/components/SideNav/ListItem.interface.ts b/components/SideNav/ListItem.interface.ts new file mode 100644 index 000000000..bc1503269 --- /dev/null +++ b/components/SideNav/ListItem.interface.ts @@ -0,0 +1,6 @@ +import { MenuItem } from "../../interface/common.interface"; + +export interface ListItemProps { + item: MenuItem; + fontWeight?: number; +} diff --git a/components/SideNav/ListItem.tsx b/components/SideNav/ListItem.tsx index b6907eca7..ec78d7828 100644 --- a/components/SideNav/ListItem.tsx +++ b/components/SideNav/ListItem.tsx @@ -1,4 +1,5 @@ import classNames from "classnames"; +import { isNil } from "lodash"; import Link from "next/link"; import { useRouter } from "next/router"; import { useEffect, useMemo, useRef, useState } from "react"; @@ -6,17 +7,11 @@ import { useDocVersionContext } from "../../context/DocVersionContext"; import { ReactComponent as ArrowDown } from "../../images/icons/drop-arrow-down.svg"; import { ReactComponent as ArrowRight } from "../../images/icons/drop-arrow-right.svg"; import { ReactComponent as CollateIcon } from "../../images/icons/ic-collate.svg"; -import { MenuItem } from "../../interface/common.interface"; import { getUrlWithVersion } from "../../utils/CommonUtils"; +import { ListItemProps } from "./ListItem.interface"; import styles from "./SideNav.module.css"; -export default function ListItem({ - item, - fontWeight, -}: { - item: MenuItem; - fontWeight?: number; -}) { +export default function ListItem({ item, fontWeight }: Readonly) { const router = useRouter(); const { docVersion } = useDocVersionContext(); const linkRef = useRef(); @@ -65,7 +60,10 @@ export default function ListItem({ useEffect(() => { // Logic to get the selected side nav item into view after page load - if (linkRef.current && linkRef.current.className.includes("ActiveLink")) { + if ( + !isNil(linkRef.current) && + linkRef.current.className.includes("ActiveLink") + ) { linkRef.current.scrollIntoView({ block: "center", inline: "center" }); } }, [isActive, linkRef]); diff --git a/components/SideNav/SideNav.tsx b/components/SideNav/SideNav.tsx index 03a72a994..281d8be5d 100644 --- a/components/SideNav/SideNav.tsx +++ b/components/SideNav/SideNav.tsx @@ -9,6 +9,7 @@ import { ReactComponent as CollapseLeftIcon } from "../../images/icons/collapse- import { ReactComponent as CollapseRightIcon } from "../../images/icons/collapse-right.svg"; import { ReactComponent as OverviewIcon } from "../../images/icons/overview-icon.svg"; import { getCategoryByIndex } from "../../lib/utils"; +import { getSideNavItems } from "../../utils/SideNavUtils"; import SkeletonLoader from "../common/SkeletonLoader/SkeletonLoader"; import ListItem from "./ListItem"; import styles from "./SideNav.module.css"; @@ -42,7 +43,10 @@ export default forwardRef(function SideNav( [menuItems, category] ); - const childItems = useMemo(() => item?.children ?? [], [item]); + const childItems = useMemo( + () => getSideNavItems(item, router.asPath), + [item, router.asPath] + ); useEffect(() => { const scrollEventListener = () => { diff --git a/components/TopNav/TopNav.tsx b/components/TopNav/TopNav.tsx index 0c874f80d..f26f55fc0 100644 --- a/components/TopNav/TopNav.tsx +++ b/components/TopNav/TopNav.tsx @@ -14,11 +14,11 @@ import { import { useDocVersionContext } from "../../context/DocVersionContext"; import { useNavBarCollapsedContext } from "../../context/NavBarCollapseContext"; import { SearchContextProvider } from "../../context/SearchContext"; -import { ReactComponent as API } from "../../images/icons/api.svg"; -import { ReactComponent as Cloud } from "../../images/icons/cloud.svg"; -import { ReactComponent as Github } from "../../images/icons/github.svg"; -import { ReactComponent as SvgLogo } from "../../images/icons/omd.svg"; -import { ReactComponent as Slack } from "../../images/icons/slack.svg"; +import { ReactComponent as ApiIcon } from "../../images/icons/api.svg"; +import { ReactComponent as CloudIcon } from "../../images/icons/cloud.svg"; +import { ReactComponent as GithubIcon } from "../../images/icons/github.svg"; +import { ReactComponent as OMDIcon } from "../../images/icons/omd.svg"; +import { ReactComponent as SlackIcon } from "../../images/icons/slack.svg"; import { getUrlWithVersion } from "../../utils/CommonUtils"; import Search from "../Search/Search"; import SelectDropdown, { SelectOption } from "../SelectDropdown/SelectDropdown"; @@ -33,7 +33,7 @@ interface TopNavProps { versionsList: Array>; } -export default function TopNav({ versionsList }: TopNavProps) { +export default function TopNav({ versionsList }: Readonly) { const router = useRouter(); const [displayNavBarCollapseButton, setDisplayNavBarCollapseButton] = useState(false); @@ -88,7 +88,7 @@ export default function TopNav({ versionsList }: TopNavProps) {
- + {!isEmpty(versionsList) && ( diff --git a/components/common/SkeletonLoader/SkeletonLoader.tsx b/components/common/SkeletonLoader/SkeletonLoader.tsx index 8996535d3..a376db4db 100644 --- a/components/common/SkeletonLoader/SkeletonLoader.tsx +++ b/components/common/SkeletonLoader/SkeletonLoader.tsx @@ -16,7 +16,7 @@ function SkeletonLoader({ showBreadcrumb = false, title = DEFAULT_TITLE, paragraph = DEFAULT_PARAGRAPH, -}: SkeletonLoaderProps) { +}: Readonly) { return (
{showBreadcrumb && getSkeletonBreadcrumbs()} diff --git a/components/modals/APISearchModal/APISearchModal.tsx b/components/modals/APISearchModal/APISearchModal.tsx index c78a5875d..8a963e356 100644 --- a/components/modals/APISearchModal/APISearchModal.tsx +++ b/components/modals/APISearchModal/APISearchModal.tsx @@ -1,4 +1,5 @@ import algoliasearch from "algoliasearch/lite"; +import { isNil } from "lodash"; import { useEffect } from "react"; import ReactDOM from "react-dom"; import { InstantSearch } from "react-instantsearch"; @@ -23,7 +24,7 @@ function APISearchModal({ handleMaskClick }: APISearchModalProps) { setTimeout(() => { const inputElement = document.getElementById("search-input"); - inputElement && inputElement.focus(); + !isNil(inputElement) && inputElement.focus(); }, 50); }, []); @@ -38,6 +39,9 @@ function APISearchModal({ handleMaskClick }: APISearchModalProps) { { - if (field === "slug") { - items[field] = realSlug; - } - if (field === "content") { - items[field] = content; - } - if (data[field]) { - items[field] = data[field]; - } - }); - - return items; -} - -export function getAllArticles(fields = []) { - const slugs = getArticleSlugs(); - const posts = slugs.map((slug) => getArticleBySlug(slug, fields)); - return posts; -} - -export function getMenu(version?: string) { - const menu = []; - const fullPath = join( - ARTICLES_DIRECTORY, - version ? version : DEFAULT_VERSION, - `menu.md` - ); - const fileContents = fs.readFileSync(fullPath, "utf8"); - const data = matter(fileContents); - - let menuRoot = menu; - let objRoot = menu; - - const flatMenu = data.data["site_menu"]; - - for (const index in flatMenu) { - const item = flatMenu[index]; - const category = item["category"].split("/"); - // Move to the depth we need - for (const depth in category) { - const menu_key = slugify(category[depth].trim().toLowerCase()); - let exist = findIndex(menuRoot, { menu_key: menu_key }); - if (exist < 0) { - menuRoot.push({ - menu_key: menu_key, - name: category[depth].trim(), - depth: depth, - children: [], - }); - exist = findIndex(menuRoot, { menu_key: menu_key }); - } - objRoot = menuRoot[exist]; - menuRoot = menuRoot[exist]["children"]; - } - Object.assign(objRoot, item); - menuRoot = menu; - } - - return menu; -} - export const getVersionsList = () => { try { const versionsArray = fs.readdirSync(ARTICLES_DIRECTORY); diff --git a/pages/[version]/[...slug].tsx b/pages/[version]/[...slug].tsx index 46a72f3d7..89579af39 100644 --- a/pages/[version]/[...slug].tsx +++ b/pages/[version]/[...slug].tsx @@ -32,7 +32,7 @@ export default function Article({ slug, versionsList, partials, -}: Props) { +}: Readonly) { const ast = useMemo(() => Markdoc.parse(content), [content]); const formattedPartialsObj = useMemo( diff --git a/pages/api/getMenu.ts b/pages/api/getMenu.ts index f943ea2e6..91e4040cd 100644 --- a/pages/api/getMenu.ts +++ b/pages/api/getMenu.ts @@ -24,18 +24,19 @@ export default function handler(req, res) { for (const index in flatMenu) { const item = flatMenu[index]; const category = item["category"].split("/"); + const url = item["url"].slice(1).split("/"); // Move to the depth we need for (const depth in category) { - const menu_key = slugify(category[depth].trim().toLowerCase()); - let exist = findIndex(menuRoot, { menu_key: menu_key }); + const menu_key = slugify(url[depth].trim().toLowerCase()); + let exist = findIndex(menuRoot, { menu_key }); if (exist < 0) { menuRoot.push({ - menu_key: menu_key, + menu_key, name: category[depth].trim(), - depth: depth, + depth, children: [], }); - exist = findIndex(menuRoot, { menu_key: menu_key }); + exist = findIndex(menuRoot, { menu_key }); } objRoot = menuRoot[exist]; menuRoot = menuRoot[exist]["children"]; diff --git a/public/images/connectors/apachenifi.png b/public/images/connectors/apachenifi.png new file mode 100644 index 000000000..d79918ccc Binary files /dev/null and b/public/images/connectors/apachenifi.png differ diff --git a/public/images/connectors/dagster.png b/public/images/connectors/dagster.png new file mode 100644 index 000000000..cf0e36ef0 Binary files /dev/null and b/public/images/connectors/dagster.png differ diff --git a/public/images/connectors/fivetran.png b/public/images/connectors/fivetran.png new file mode 100644 index 000000000..0f99e1911 Binary files /dev/null and b/public/images/connectors/fivetran.png differ diff --git a/public/images/connectors/ldap.png b/public/images/connectors/ldap.png new file mode 100644 index 000000000..4ce986742 Binary files /dev/null and b/public/images/connectors/ldap.png differ diff --git a/public/images/connectors/pulsar.png b/public/images/connectors/pulsar.png new file mode 100644 index 000000000..d4d4da4a1 Binary files /dev/null and b/public/images/connectors/pulsar.png differ diff --git a/public/images/connectors/sqllite.png b/public/images/connectors/sqllite.png new file mode 100644 index 000000000..217015403 Binary files /dev/null and b/public/images/connectors/sqllite.png differ diff --git a/public/swagger.json b/public/swagger.json index 5ae7881bf..3bd17c43d 100644 --- a/public/swagger.json +++ b/public/swagger.json @@ -1,2380 +1,5277 @@ { - "openapi": "3.0.1", - "info": { - "title": "OpenMetadata Apis", - "description": "---\ntitle: APIs\nslug: /main-concepts/metadata-standard/apis\n---\n\n# APIs\n\nOpenMetadata supports REST APIs for getting data and in and out of the metadata service. APIs are built using general\nbest practices of REST API design. We take a schema-first approach by defining Types and Entities in JSON Schema. We\nimplement APIs based on these schemas.\n\n## Overview\n\n### URI\n\nFollowing REST API conventions are followed for Resource URIs:\n- Operations for an entity are available through the Resource URI as a collection `.../api//entities`. \n- Plural of the entity name is used as the collection name - example `.../api/v1/users`.\n- Trailing forward slash is not used in the endpoint URI. Example use `.../api/v1/databases` instead of `.../api/v1/databases/`.\n- Resource URI for an entity instance by the entity id is `.../api/v1/entities/{id}`. \n- Resource URI for an entity instance by name is `.../api/v1/entities/name/{name}`.\n\n### Resource Representation\n\n- The REST API calls return a response with JSON `Content-Type` and `Content-Length` that includes the length of the response.\n- All responses include the Resource ID field even though the id was provided in the request to simplify the consumption \n of the response at the client.\n- Entity names and field names use `camelCase` per Javascript naming convention.\n- All resources include an attribute `href` with Resource URI. All relationship fields of an entity will also \n include `href` links to the related resource for easy access.\n- Unknown fields sent by the client in API requests are not ignored to ensure the data sent by the client is not dropped \n at the server without the user being aware of it.\n\n## API Organization\n\nYou can find the swagger documentation [here](/swagger.html). In a nutshell:\n\n**Data Asset APIs** - support operations related to data asset entities.\n- `.../api/v1/databases`\n- `...api/v1/tables`\n- `.../api/v1/metrics`\n- `.../api/v1/dashboards`\n- `.../api/v1/reports`\n- `.../api/v1/pipelines`\n- `.../api/v1/topics`\n\n**Service APIs** - support operations related to services from which metadata is collected:\n- `.../api/v1/services` is the collection of all service resources.\n- `.../api/v1/services/databaseService` - APIs related to database services. This includes Transactional databases - MySQL, Postgres, MSSQL, Oracle, and Data Warehouses - Apache Hive BigQuery, Redshift, and Snowflake.\n- `.../api/v1/services/dashboardService` - APIs related to Dashboard Services. This includes Looker, Superset, and Tableau.\n- `.../api/v1/services/messagingService` - APIs related to Messaging Services. This includes Apache Kafka, Redpanda, - Kinesis, and others.\n\n**Teams & Users APIs**\n- `.../api/v1/teams` - APIs related to team entities\n- `.../api/v1/users` - APIs related to user entities\n\n**Search & Suggest APIs** - support search and suggest APIs:\n- `.../api/v1/search` - collection for search and suggest APIs\n- `.../api/v1/search/query` - search entities using query text\n- `.../api/v1/search/suggest` - get suggested entities used for auto-completion\n\n**Other APIs**\n- `.../api/v1/tags` for APIs related to Classification and Tag entities\n- `../api/v1/feeds` for APIs related to Threads and Posts entities\n- `.../api/v1/usage` for reporting usage information of entities", - "contact": { - "name": "OpenMetadata", - "url": "https://open-metadata.org", - "email": "openmetadata-dev@googlegroups.com" - }, - "license": { - "name": "Apache 2.0", - "url": "https://www.apache.org/licenses/LICENSE-2.0" - }, - "version": "1.1.0" + "openapi" : "3.0.1", + "info" : { + "title" : "OpenMetadata Apis", + "description" : "---\ntitle: APIs\nslug: /main-concepts/metadata-standard/apis\n---\n\n# APIs\n\nOpenMetadata supports REST APIs for getting data and in and out of the metadata service. APIs are built using general\nbest practices of REST API design. We take a schema-first approach by defining Types and Entities in JSON Schema. We\nimplement APIs based on these schemas.\n\n## Overview\n\n### URI\n\nFollowing REST API conventions are followed for Resource URIs:\n- Operations for an entity are available through the Resource URI as a collection `.../api//entities`. \n- Plural of the entity name is used as the collection name - example `.../api/v1/users`.\n- Trailing forward slash is not used in the endpoint URI. Example use `.../api/v1/databases` instead of `.../api/v1/databases/`.\n- Resource URI for an entity instance by the entity id is `.../api/v1/entities/{id}`. \n- Resource URI for an entity instance by name is `.../api/v1/entities/name/{name}`.\n\n### Resource Representation\n\n- The REST API calls return a response with JSON `Content-Type` and `Content-Length` that includes the length of the response.\n- All responses include the Resource ID field even though the id was provided in the request to simplify the consumption \n of the response at the client.\n- Entity names and field names use `camelCase` per Javascript naming convention.\n- All resources include an attribute `href` with Resource URI. All relationship fields of an entity will also \n include `href` links to the related resource for easy access.\n- Unknown fields sent by the client in API requests are not ignored to ensure the data sent by the client is not dropped \n at the server without the user being aware of it.\n\n## API Organization\n\nYou can find the swagger documentation [here](/swagger.html). In a nutshell:\n\n**Data Asset APIs** - support operations related to data asset entities.\n- `.../api/v1/databases`\n- `...api/v1/tables`\n- `.../api/v1/metrics`\n- `.../api/v1/dashboards`\n- `.../api/v1/reports`\n- `.../api/v1/pipelines`\n- `.../api/v1/topics`\n\n**Service APIs** - support operations related to services from which metadata is collected:\n- `.../api/v1/services` is the collection of all service resources.\n- `.../api/v1/services/databaseService` - APIs related to database services. This includes Transactional databases - MySQL, Postgres, MSSQL, Oracle, and Data Warehouses - Apache Hive BigQuery, Redshift, and Snowflake.\n- `.../api/v1/services/dashboardService` - APIs related to Dashboard Services. This includes Looker, Superset, and Tableau.\n- `.../api/v1/services/messagingService` - APIs related to Messaging Services. This includes Apache Kafka, Redpanda, - Kinesis, and others.\n\n**Teams & Users APIs**\n- `.../api/v1/teams` - APIs related to team entities\n- `.../api/v1/users` - APIs related to user entities\n\n**Search & Suggest APIs** - support search and suggest APIs:\n- `.../api/v1/search` - collection for search and suggest APIs\n- `.../api/v1/search/query` - search entities using query text\n- `.../api/v1/search/suggest` - get suggested entities used for auto-completion\n\n**Other APIs**\n- `.../api/v1/tags` for APIs related to Classification and Tag entities\n- `../api/v1/feeds` for APIs related to Threads and Posts entities\n- `.../api/v1/usage` for reporting usage information of entities", + "contact" : { + "name" : "OpenMetadata", + "url" : "https://open-metadata.org", + "email" : "openmetadata-dev@googlegroups.com" + }, + "license" : { + "name" : "Apache 2.0", + "url" : "https://www.apache.org/licenses/LICENSE-2.0" + }, + "version" : "1.2.x" }, - "servers": [ - { - "url": "http://localhost:8585/api", - "description": "Endpoint URL" - } - ], - "tags": [ - { - "name": "Bots", - "description": "A `Bot` automates tasks, such as ingesting metadata, and running data quality It performs this task as a special user in the system." - }, - { - "name": "Charts", - "description": "A `Chart` are computed from data presents data visually and can be part of `Dashboards`." - }, - { - "name": "Dashboards", - "description": "Dashboards are computed from data and visually present data, metrics, and KPIs. They are typically updated in real-time and allow interactive data exploration." - }, - { - "name": "Databases", - "description": "A `Database` also referred to as `Database Catalog` is a collection of schemas." - }, - { - "name": "Database Schemas", - "description": "A `Database Schema` is collection of tables, views, stored procedures, and other database objects." - }, - { - "name": "Tables", - "description": "`Table` organizes data in rows and columns and is defined in a `Database Schema`." - }, - { - "name": "Dashboard Data Models", - "description": "`Data Models` are the schemas used to build dashboards, charts, or other data assets." - }, - { - "name": "Test Cases", - "description": "Test case is a test definition to capture data quality tests against tables, columns, and other data assets." - }, - { - "name": "Test Definitions", - "description": "`Test Definition` is a definition of a type of test using which test cases are created that run against data to capture data quality." - }, - { - "name": "Test Suites", - "description": "`TestSuite` is a set of test cases grouped together to capture data quality." - }, - { - "name": "Events", - "description": "The `Events` are changes to metadata and are sent when entities are created, modified, or updated. External systems can subscribe to events using event subscription API over Webhooks, Slack, or Microsoft Teams." - }, - { - "name": "Feeds", - "description": "Feeds API supports `Activity Feeds` and `Conversation Threads`." - }, - { - "name": "Glossaries", - "description": "A `Glossary` is collection of hierarchical `GlossaryTerms`." - }, - { - "name": "Lineage", - "description": "The `Lineage` for a given data asset, has information of the input datasets used and the ETL pipeline that created it." - }, - { - "name": "Metrics (beta)", - "description": "`Metrics` are measurements computed from data such as `Monthly Active Users`. Some of the metrics that measures used to determine performance against an objective are called KPIs or Key Performance Indicators, such as `User Retention`." - }, - { - "name": "ML Models", - "description": "`Machine Learning Models` are algorithms trained on data to find patterns or make predictions." - }, - { - "name": "Permissions", - "description": "APIs related to getting access permission for a User." - }, - { - "name": "Pipelines", - "description": "A `Pipeline` enables the flow of data from source to destination through a series of processing steps. ETL is a type of pipeline where the series of steps Extract, Transform and Load the data." - }, - { - "name": "Policies", - "description": "A `Policy` defines control that needs to be applied across different Data Entities." - }, - { - "name": "Queries", - "description": "A `Query` entity represents a SQL query associated with data assets it is run against." - }, - { - "name": "Reports (beta)", - "description": "`Reports` are static information computed from data periodically that includes data in text, table, and visual form." - }, - { - "name": "Search", - "description": "APIs related to search and suggest." - }, - { - "name": "Database Services", - "description": "`Database Service` is a service such as MySQL, BigQuery, Redshift, Postgres, or Snowflake. Alternative terms such as Database Cluster, Database Server instance are also used for database service." - }, - { - "name": "Metadata Services", - "description": "APIs related to creating and managing other Metadata Services that OpenMetadata integrates with such as `Apache Atlas`, `Amundsen`, etc." - }, - { - "name": "Object Store Services", - "description": "APIs related `Object Store Service` entities, such as S3, GCS or AZURE." - }, - { - "name": "Containers", - "description": "A Container is an abstraction for any path(including the top level eg. bucket in S3) storing data in an Object store such as S3, GCP, Azure. It maps a tree-like structure, where each Container can have a parent and a list of sub-folders, and it can be structured - where it contains structured data, or unstructured where no schema for its data is defined." - }, - { - "name": "Classifications", - "description": "These APIs are related to `Classification` and `Tags`. A `Classification` entity contains hierarchical terms called `Tags` used for categorizing and classifying data assets and other entities." - }, - { - "name": "Roles", - "description": "A `Role` is a collection of `Policies` that provides access control. A user or a team can be assigned one or multiple roles that provide privileges to a user and members of a team to perform the job function." - }, - { - "name": "Teams", - "description": "A `Team` is a group of zero or more users and/or other teams. Teams can own zero or more data assets. Hierarchical teams are supported `Organization` -> `BusinessUnit` -> `Division` -> `Department`." - }, - { - "name": "Users", - "description": "A `User` represents a user of OpenMetadata. A user can be part of 0 or more teams. A special type of user called Bot is used for automation. A user can be an owner of zero or more data assets. A user can also follow zero or more data assets." - }, - { - "name": "Topics", - "description": "A `Topic` is a feed or an event stream in a `Messaging Service` into which publishers publish messages and consumed by consumers." - }, - { - "name": "Metadata", - "description": "These APIs are for adding new `Types` to OpenMetadata and use those `Types` to extend the metadata of an entity with custom properties." - }, - { - "name": "Usage", - "description": "APIs related usage of data assets." - }, - { - "name": "System", - "description": "APIs related to System configuration and settings." - } - ], - "paths": { - "/v1/bots": { - "get": { - "tags": ["Bots"], - "summary": "List bots", - "description": "Get a list of Bot.", - "operationId": "listBots", - "parameters": [ - { - "name": "limit", - "in": "query", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of Bot before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of Bot after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "servers" : [ { + "url" : "http://localhost:8585/api", + "description" : "Endpoint URL" + } ], + "tags" : [ { + "name" : "Apps", + "description" : "Apps marketplace holds to application available for Open-metadata" + }, { + "name" : "Bots", + "description" : "A `Bot` automates tasks, such as ingesting metadata, and running data quality It performs this task as a special user in the system." + }, { + "name" : "Charts", + "description" : "A `Chart` are computed from data presents data visually and can be part of `Dashboards`." + }, { + "name" : "Dashboards", + "description" : "Dashboards are computed from data and visually present data, metrics, and KPIs. They are typically updated in real-time and allow interactive data exploration." + }, { + "name" : "Databases", + "description" : "A `Database` also referred to as `Database Catalog` is a collection of schemas." + }, { + "name" : "Database Schemas", + "description" : "A `Database Schema` is collection of tables, views, stored procedures, and other database objects." + }, { + "name" : "Stored Procedures", + "description" : "A `StoredProcedure` entity that contains the set of code statements with an assigned name ." + }, { + "name" : "Tables", + "description" : "`Table` organizes data in rows and columns and is defined in a `Database Schema`." + }, { + "name" : "Dashboard Data Models", + "description" : "`Data Models` are the schemas used to build dashboards, charts, or other data assets." + }, { + "name" : "Document Store", + "description" : "A `Document` is an generic entity in OpenMetadata." + }, { + "name" : "Domains", + "description" : "A `Data Product` or `Data as a Product` is a logical unit that contains all components to process and store domain data for analytical or data-intensive use cases made available to data consumers." + }, { + "name" : "Test Cases", + "description" : "Test case is a test definition to capture data quality tests against tables, columns, and other data assets." + }, { + "name" : "Test Definitions", + "description" : "`Test Definition` is a definition of a type of test using which test cases are created that run against data to capture data quality." + }, { + "name" : "Test Suites", + "description" : "`TestSuite` is a set of test cases grouped together to capture data quality." + }, { + "name" : "Events", + "description" : "The `Events` are changes to metadata and are sent when entities are created, modified, or updated. External systems can subscribe to events using event subscription API over Webhooks, Slack, or Microsoft Teams." + }, { + "name" : "Feeds", + "description" : "Feeds API supports `Activity Feeds` and `Conversation Threads`." + }, { + "name" : "Glossaries", + "description" : "A `Glossary` is collection of hierarchical `GlossaryTerms`." + }, { + "name" : "Lineage", + "description" : "The `Lineage` for a given data asset, has information of the input datasets used and the ETL pipeline that created it." + }, { + "name" : "Metrics (beta)", + "description" : "`Metrics` are measurements computed from data such as `Monthly Active Users`. Some of the metrics that measures used to determine performance against an objective are called KPIs or Key Performance Indicators, such as `User Retention`." + }, { + "name" : "ML Models", + "description" : "`Machine Learning Models` are algorithms trained on data to find patterns or make predictions." + }, { + "name" : "Permissions", + "description" : "APIs related to getting access permission for a User." + }, { + "name" : "Pipelines", + "description" : "A `Pipeline` enables the flow of data from source to destination through a series of processing steps. ETL is a type of pipeline where the series of steps Extract, Transform and Load the data." + }, { + "name" : "Policies", + "description" : "A `Policy` defines control that needs to be applied across different Data Entities." + }, { + "name" : "Queries", + "description" : "A `Query` entity represents a SQL query associated with data assets it is run against." + }, { + "name" : "Reports (beta)", + "description" : "`Reports` are static information computed from data periodically that includes data in text, table, and visual form." + }, { + "name" : "Search", + "description" : "APIs related to search and suggest." + }, { + "name" : "SearchIndex", + "description" : "A `SearchIndex` is a index mapping for indexing documents in a `Search Service`." + }, { + "name" : "Database Services", + "description" : "`Database Service` is a service such as MySQL, BigQuery, Redshift, Postgres, or Snowflake. Alternative terms such as Database Cluster, Database Server instance are also used for database service." + }, { + "name" : "Metadata Services", + "description" : "APIs related to creating and managing other Metadata Services that OpenMetadata integrates with such as `Apache Atlas`, `Amundsen`, etc." + }, { + "name" : "Search Services", + "description" : "APIs related `Search Service` entities, such as ElasticSearch, OpenSearch." + }, { + "name" : "Object Store Services", + "description" : "APIs related `Object Store Service` entities, such as S3, GCS or AZURE." + }, { + "name" : "Containers", + "description" : "A Container is an abstraction for any path(including the top level eg. bucket in S3) storing data in an Object store such as S3, GCP, Azure. It maps a tree-like structure, where each Container can have a parent and a list of sub-folders, and it can be structured - where it contains structured data, or unstructured where no schema for its data is defined." + }, { + "name" : "Classifications", + "description" : "These APIs are related to `Classification` and `Tags`. A `Classification` entity contains hierarchical terms called `Tags` used for categorizing and classifying data assets and other entities." + }, { + "name" : "Personas", + "description" : "A `Persona` is to represent job function a user does. OpenMetadata uses Persona to define customizable experience in the UI." + }, { + "name" : "Roles", + "description" : "A `Role` is a collection of `Policies` that provides access control. A user or a team can be assigned one or multiple roles that provide privileges to a user and members of a team to perform the job function." + }, { + "name" : "Teams", + "description" : "A `Team` is a group of zero or more users and/or other teams. Teams can own zero or more data assets. Hierarchical teams are supported `Organization` -> `BusinessUnit` -> `Division` -> `Department`." + }, { + "name" : "Users", + "description" : "A `User` represents a user of OpenMetadata. A user can be part of 0 or more teams. A special type of user called Bot is used for automation. A user can be an owner of zero or more data assets. A user can also follow zero or more data assets." + }, { + "name" : "Topics", + "description" : "A `Topic` is a feed or an event stream in a `Messaging Service` into which publishers publish messages and consumed by consumers." + }, { + "name" : "Metadata", + "description" : "These APIs are for adding new `Types` to OpenMetadata and use those `Types` to extend the metadata of an entity with custom properties." + }, { + "name" : "Usage", + "description" : "APIs related usage of data assets." + }, { + "name" : "System", + "description" : "APIs related to System configuration and settings." + } ], + "paths" : { + "/v1/apps" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "List installed application", + "description" : "Get a list of applications. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listInstalledApplications", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number of installed applications returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of tests before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of tests after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of Installed Applications", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Apps" ], + "summary" : "Create Or Update App", + "description" : "Create or Update App, it it does not exist or update an existing KPI.", + "operationId" : "createOrUpdateApp_1", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateApp" + } } } - ], - "responses": { - "200": { - "description": "List of Bot", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BotList" + }, + "responses" : { + "200" : { + "description" : "The updated Application Objective ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/App" } } } } } }, - "put": { - "tags": ["Bots"], - "summary": "Create or update a bot", - "description": "Create a bot, if it does not exist. If a bot already exists, update the bot.", - "operationId": "createOrUpdateBot", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateBot" + "post" : { + "tags" : [ "Apps" ], + "summary" : "Create a Application", + "description" : "Create a application", + "operationId" : "createApplication_1", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateApp" } } } }, - "responses": { - "200": { - "description": "The bot", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Bot" + "responses" : { + "200" : { + "description" : "The Application", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/App" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/apps/deploy/{name}" : { + "post" : { + "tags" : [ "Apps" ], + "summary" : "Deploy App to Quartz or Ingestion", + "description" : "Deploy App to Quartz or Ingestion.", + "operationId" : "deployApplicationToQuartzOrIngestion", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Application trigger status code", + "content" : { + "application/json" : { } + } + }, + "404" : { + "description" : "Application for instance {id} is not found" + } + } + } + }, + "/v1/apps/marketplace" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "List application", + "description" : "Get a list of applications. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listApplications", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number of installed applications returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of tests before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of tests after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of KPIs", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppMarketPlaceDefinitionList" } } } - }, - "400": { - "description": "Bad request" } } }, - "post": { - "tags": ["Bots"], - "summary": "Create a bot", - "description": "Create a new bot.", - "operationId": "createBot", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateBot" + "put" : { + "tags" : [ "Apps" ], + "summary" : "Create Or Update App", + "description" : "Create or Update App, it it does not exist or update an existing KPI.", + "operationId" : "createOrUpdateApp", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateAppMarketPlaceDefinitionReq" } } } }, - "responses": { - "200": { - "description": "The bot ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Bot" + "responses" : { + "200" : { + "description" : "The updated Application Objective ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/App" } } } - }, - "400": { - "description": "Bad request" } } - } - }, - "/v1/bots/name/{name}": { - "get": { - "tags": ["Bots"], - "summary": "Get a bot by name", - "description": "Get a bot by `name`.", - "operationId": "getBotByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the bot", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "bot", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Bot" - } + }, + "post" : { + "tags" : [ "Apps" ], + "summary" : "Create a Application", + "description" : "Create a application", + "operationId" : "createApplication", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateAppMarketPlaceDefinitionReq" } } - }, - "404": { - "description": "Bot for instance {name} is not found" } - } - }, - "delete": { - "tags": ["Bots"], - "summary": "Delete a bot by name", - "description": "Delete a bot by `name`.", - "operationId": "deleteBotByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the bot", - "required": true, - "schema": { - "type": "string" + }, + "responses" : { + "200" : { + "description" : "The Application", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppMarketPlaceDefinition" + } + } } - } - ], - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "Bot for instance {name} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/bots/restore": { - "put": { - "tags": ["Bots"], - "summary": "Restore a soft deleted bot", - "description": "Restore a soft deleted bot.", - "operationId": "restore", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } + "/v1/apps/marketplace/name/{name}" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "Get a App by name", + "description" : "Get a App by `name`.", + "operationId" : "getAppByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" } - }, - "responses": { - "200": { - "description": "Successfully restored the Bot ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Bot" - } - } - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags" } - } - } - }, - "/v1/bots/{id}": { - "get": { - "tags": ["Bots"], - "summary": "Get a bot by Id", - "description": "Get a bot by `Id`.", - "operationId": "getBotByID", - "parameters": [ - { - "name": "include", - "in": "query", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the bot", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] } - ], - "responses": { - "200": { - "description": "The bot", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Bot" + } ], + "responses" : { + "200" : { + "description" : "The App", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppMarketPlaceDefinition" } } } }, - "404": { - "description": "Bot for instance {id} is not found" + "404" : { + "description" : "App for instance {name} is not found" } } }, - "delete": { - "tags": ["Bots"], - "summary": "Delete a bot by Id", - "description": "Delete a bot by `Id`.", - "operationId": "deleteBot", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the bot", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "delete" : { + "tags" : [ "Apps" ], + "summary" : "Delete a App by name", + "description" : "Delete a App by `name`.", + "operationId" : "deleteAppByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "200": { - "description": "OK" + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Bot for instance {id} is not found" + "404" : { + "description" : "App for instance {name} is not found" } } - }, - "patch": { - "tags": ["Bots"], - "summary": "Update a bot", - "description": "Update an existing bot using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchBot", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the bot", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + }, + "/v1/apps/marketplace/restore" : { + "put" : { + "tags" : [ "Apps" ], + "summary" : "Restore a soft deleted KPI", + "description" : "Restore a soft deleted App.", + "operationId" : "restore", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "Successfully restored the App. ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppMarketPlaceDefinition" + } + } + } + } + } + } + }, + "/v1/apps/marketplace/{id}" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "Get a app by Id", + "description" : "Get a app by `Id`.", + "operationId" : "get", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the App", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The App", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppMarketPlaceDefinition" + } + } + } + }, + "404" : { + "description" : "App for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Apps" ], + "summary" : "Delete a App by Id", + "description" : "Delete a App by `Id`.", + "operationId" : "deleteApp", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the App", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "App for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Apps" ], + "summary" : "Updates a App", + "description" : "Update an existing App using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchApplication", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the App", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - } - } - }, - "/v1/bots/{id}/versions": { - "get": { - "tags": ["Bots"], - "summary": "List bot versions", - "description": "Get a list of all the versions of a bot identified by `Id`", - "operationId": "listAllBotVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the bot", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/apps/marketplace/{id}/versions" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "List Installed Application versions", + "description" : "Get a list of all the versions of a application identified by `id`", + "operationId" : "listAllInstalledApplications", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the app", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of installed application versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/apps/marketplace/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "Get a version of the App", + "description" : "Get a version of the App by given `id`", + "operationId" : "getSpecificAppVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the App", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "KPI version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "App", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/App" + } + } + } + }, + "404" : { + "description" : "App for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/apps/name/{name}" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "Get a App by name", + "description" : "Get a App by `name`.", + "operationId" : "getAppByName_1", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The App", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/App" + } + } + } + }, + "404" : { + "description" : "App for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Apps" ], + "summary" : "Delete a App by name", + "description" : "Delete a App by `name`.", + "operationId" : "uninstallAppByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "App for instance {name} is not found" + } + } + } + }, + "/v1/apps/name/{name}/logs" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "Retrieve all logs from last ingestion pipeline run for the application", + "description" : "Get all logs from last ingestion pipeline run by `Id`.", + "operationId" : "getLastLogs", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns log chunk after this cursor", + "schema" : { + "type" : "string", + "default" : "" + } + } ], + "responses" : { + "200" : { + "description" : "JSON object with the task instance name of the ingestion on each key and log in the value", + "content" : { + "application/json" : { } + } + }, + "404" : { + "description" : "Logs for instance {id} is not found" + } + } + } + }, + "/v1/apps/name/{name}/runs/latest" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "Get Latest App Run Record", + "description" : "Get a latest applications Run Record.", + "operationId" : "latestAppRunRecord", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns log chunk after this cursor", + "schema" : { + "type" : "string", + "default" : "" + } + } ], + "responses" : { + "200" : { + "description" : "List of Installed Applications Runs", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppRunRecord" + } + } + } + } + } + } + }, + "/v1/apps/name/{name}/status" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "List App Run Records", + "description" : "Get a list of applications Run Record. Use cursor-based pagination to limit the number entries in the list using `offset` query params.", + "operationId" : "listAppRunRecords", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit records. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "offset", + "in" : "query", + "description" : "Offset records. (0 to 1000000, default = 0)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 0 + } + }, { + "name" : "startTs", + "in" : "query", + "description" : "Filter pipeline status after the given start timestamp", + "schema" : { + "type" : "number" + } + }, { + "name" : "endTs", + "in" : "query", + "description" : "Filter pipeline status before the given end timestamp", + "schema" : { + "type" : "number" + } + } ], + "responses" : { + "200" : { + "description" : "List of Installed Applications Runs", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AppRunList" + } + } + } + } + } + } + }, + "/v1/apps/restore" : { + "put" : { + "tags" : [ "Apps" ], + "summary" : "Restore a soft deleted KPI", + "description" : "Restore a soft deleted App.", + "operationId" : "restore_1", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - ], - "responses": { - "200": { - "description": "List of bot versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the App. ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/App" + } + } + } + } + } + } + }, + "/v1/apps/schedule/{name}" : { + "post" : { + "tags" : [ "Apps" ], + "summary" : "Schedule an Application", + "description" : "Schedule a application to be run on demand.", + "operationId" : "scheduleApplication", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "The Application", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "headers" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "object" + } + } + }, + "length" : { + "type" : "integer", + "format" : "int32" + }, + "location" : { + "type" : "string", + "format" : "uri" + }, + "language" : { + "type" : "object", + "properties" : { + "language" : { + "type" : "string" + }, + "script" : { + "type" : "string" + }, + "variant" : { + "type" : "string" + }, + "country" : { + "type" : "string" + }, + "unicodeLocaleAttributes" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "unicodeLocaleKeys" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "displayLanguage" : { + "type" : "string" + }, + "displayScript" : { + "type" : "string" + }, + "displayCountry" : { + "type" : "string" + }, + "displayVariant" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "extensionKeys" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "iso3Language" : { + "type" : "string" + }, + "iso3Country" : { + "type" : "string" + } + } + }, + "lastModified" : { + "type" : "string", + "format" : "date-time" + }, + "date" : { + "type" : "string", + "format" : "date-time" + }, + "statusInfo" : { + "type" : "object", + "properties" : { + "family" : { + "type" : "string", + "enum" : [ "INFORMATIONAL", "SUCCESSFUL", "REDIRECTION", "CLIENT_ERROR", "SERVER_ERROR", "OTHER" ] + }, + "statusCode" : { + "type" : "integer", + "format" : "int32" + }, + "reasonPhrase" : { + "type" : "string" + } + } + }, + "allowedMethods" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "entityTag" : { + "type" : "object", + "properties" : { + "value" : { + "type" : "string" + }, + "weak" : { + "type" : "boolean" + } + } + }, + "stringHeaders" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, + "metadata" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "object" + } + } + }, + "mediaType" : { + "type" : "object", + "properties" : { + "type" : { + "type" : "string" + }, + "subtype" : { + "type" : "string" + }, + "parameters" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "wildcardType" : { + "type" : "boolean" + }, + "wildcardSubtype" : { + "type" : "boolean" + } + } + }, + "status" : { + "type" : "integer", + "format" : "int32" + }, + "entity" : { + "type" : "object" + }, + "links" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "type" : { + "type" : "string" + }, + "uriBuilder" : { + "type" : "object" + }, + "params" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "title" : { + "type" : "string" + }, + "uri" : { + "type" : "string", + "format" : "uri" + }, + "rel" : { + "type" : "string" + }, + "rels" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + } + }, + "cookies" : { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "value" : { + "type" : "string" + }, + "version" : { + "type" : "integer", + "format" : "int32" + }, + "path" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "comment" : { + "type" : "string" + }, + "maxAge" : { + "type" : "integer", + "format" : "int32" + }, + "expiry" : { + "type" : "string", + "format" : "date-time" + }, + "secure" : { + "type" : "boolean" + }, + "httpOnly" : { + "type" : "boolean" + } + } + } + } + } } } } + }, + "404" : { + "description" : "Application for instance {id} is not found" } - } + } } }, - "/v1/bots/{id}/versions/{version}": { - "get": { - "tags": ["Bots"], - "summary": "Get a version of the bot", - "description": "Get a version of the bot by given `Id`", - "operationId": "listSpecificBotVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the bot", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "bot version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/apps/trigger/{name}" : { + "post" : { + "tags" : [ "Apps" ], + "summary" : "Trigger an Application run", + "description" : "Trigger a Application run by id.", + "operationId" : "triggerApplicationRun", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the App", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "bot", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Bot" - } - } + } ], + "responses" : { + "200" : { + "description" : "Application trigger status code", + "content" : { + "application/json" : { } } }, - "404": { - "description": "Bot for instance {id} and version {version} is not found" + "404" : { + "description" : "Application for instance {id} is not found" } } } }, - "/v1/charts": { - "get": { - "tags": ["Charts"], - "summary": "List charts", - "description": "Get a list of charts, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listCharts", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,tags" - } - }, - { - "name": "service", - "in": "query", - "description": "Filter charts by service name", - "schema": { - "type": "string", - "example": "superset" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number charts returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of charts before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of charts after this cursor", - "schema": { - "type": "string" + "/v1/apps/{id}" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "Get a app by Id", + "description" : "Get a app by `Id`.", + "operationId" : "get_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the App", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The App", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/App" + } + } } }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "404" : { + "description" : "App for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Apps" ], + "summary" : "Delete a App by Id", + "description" : "Delete a App by `Id`.", + "operationId" : "uninstallAppByName_1", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the App", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "App for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Apps" ], + "summary" : "Updates a App", + "description" : "Update an existing App using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchApplication_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the App", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "List of charts", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChartList" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/apps/{id}/versions" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "List Installed Application versions", + "description" : "Get a list of all the versions of a application identified by `id`", + "operationId" : "listAllInstalledApplications_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the app", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of installed application versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/apps/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Apps" ], + "summary" : "Get a version of the App", + "description" : "Get a version of the App by given `id`", + "operationId" : "getSpecificAppVersion_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the App", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "App version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "App", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/App" + } + } + } + }, + "404" : { + "description" : "App for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/bots" : { + "get" : { + "tags" : [ "Bots" ], + "summary" : "List bots", + "description" : "Get a list of Bot.", + "operationId" : "listBots", + "parameters" : [ { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of Bot before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of Bot after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of Bot", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BotList" } } } } } }, - "put": { - "tags": ["Charts"], - "summary": "Create or update chart", - "description": "Create a chart, it it does not exist or update an existing chart.", - "operationId": "createOrUpdateChart", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateChart" + "put" : { + "tags" : [ "Bots" ], + "summary" : "Create or update a bot", + "description" : "Create a bot, if it does not exist. If a bot already exists, update the bot.", + "operationId" : "createOrUpdateBot", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateBot" } } } }, - "responses": { - "200": { - "description": "The updated chart ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Chart" + "responses" : { + "200" : { + "description" : "The bot", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Bot" } } } + }, + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Charts"], - "summary": "Create a chart", - "description": "Create a chart under an existing `service`.", - "operationId": "createChart", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateChart" + "post" : { + "tags" : [ "Bots" ], + "summary" : "Create a bot", + "description" : "Create a new bot.", + "operationId" : "createBot", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateBot" } } } }, - "responses": { - "200": { - "description": "The chart", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Chart" + "responses" : { + "200" : { + "description" : "The bot ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Bot" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } } }, - "/v1/charts/name/{fqn}": { - "get": { - "tags": ["Charts"], - "summary": "Get a chart by fully qualified name", - "description": "Get a chart by `fullyQualifiedName`.", - "operationId": "getChartByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the chart", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,tags" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/bots/name/{name}" : { + "get" : { + "tags" : [ "Bots" ], + "summary" : "Get a bot by name", + "description" : "Get a bot by `name`.", + "operationId" : "getBotByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the bot", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] } - ], - "responses": { - "200": { - "description": "The chart", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Chart" + } ], + "responses" : { + "200" : { + "description" : "bot", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Bot" } } } }, - "404": { - "description": "Chart for instance {fqn} is not found" + "404" : { + "description" : "Bot for instance {name} is not found" } } }, - "delete": { - "tags": ["Charts"], - "summary": "Delete a chart by fully qualified name", - "description": "Delete a chart by `fullyQualifiedName`.", - "operationId": "deleteChartByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the chart", - "required": true, - "schema": { - "type": "string" - } + "delete" : { + "tags" : [ "Bots" ], + "summary" : "Delete a bot by name", + "description" : "Delete a bot by `name`.", + "operationId" : "deleteBotByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the bot", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Chart for instance {fqn} is not found" + "404" : { + "description" : "Bot for instance {name} is not found" } } } }, - "/v1/charts/restore": { - "put": { - "tags": ["Charts"], - "summary": "Restore a soft deleted chart", - "description": "Restore a soft deleted chart.", - "operationId": "restore_1", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/bots/restore" : { + "put" : { + "tags" : [ "Bots" ], + "summary" : "Restore a soft deleted bot", + "description" : "Restore a soft deleted bot.", + "operationId" : "restore_2", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Chart ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Chart" - } - } + "responses" : { + "200" : { + "description" : "Successfully restored the Bot ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Bot" + } + } + } + } + } + } + }, + "/v1/bots/{id}" : { + "get" : { + "tags" : [ "Bots" ], + "summary" : "Get a bot by Id", + "description" : "Get a bot by `Id`.", + "operationId" : "getBotByID", + "parameters" : [ { + "name" : "include", + "in" : "query", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the bot", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "The bot", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Bot" + } + } + } + }, + "404" : { + "description" : "Bot for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Bots" ], + "summary" : "Delete a bot by Id", + "description" : "Delete a bot by `Id`.", + "operationId" : "deleteBot", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the bot", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Bot for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Bots" ], + "summary" : "Update a bot", + "description" : "Update an existing bot using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchBot", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the bot", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - } - } - }, - "/v1/charts/{id}": { - "get": { - "tags": ["Charts"], - "summary": "Get a chart by Id", - "description": "Get a chart by `Id`.", - "operationId": "getChartByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the chart", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,tags" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/bots/{id}/versions" : { + "get" : { + "tags" : [ "Bots" ], + "summary" : "List bot versions", + "description" : "Get a list of all the versions of a bot identified by `Id`", + "operationId" : "listAllBotVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the bot", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of bot versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/bots/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Bots" ], + "summary" : "Get a version of the bot", + "description" : "Get a version of the bot by given `Id`", + "operationId" : "listSpecificBotVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the bot", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "bot version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "bot", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Bot" + } + } + } + }, + "404" : { + "description" : "Bot for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/charts" : { + "get" : { + "tags" : [ "Charts" ], + "summary" : "List charts", + "description" : "Get a list of charts, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listCharts", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,domain,dataProducts" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter charts by service name", + "schema" : { + "type" : "string", + "example" : "superset" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number charts returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of charts before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of charts after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of charts", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChartList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Charts" ], + "summary" : "Create or update chart", + "description" : "Create a chart, it it does not exist or update an existing chart.", + "operationId" : "createOrUpdateChart", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateChart" + } } } - ], - "responses": { - "200": { - "description": "The chart", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Chart" + }, + "responses" : { + "200" : { + "description" : "The updated chart ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Chart" } } } - }, - "404": { - "description": "Chart for instance {id} is not found" } } }, - "delete": { - "tags": ["Charts"], - "summary": "Delete a chart by Id", - "description": "Delete a chart by `Id`.", - "operationId": "deleteChart", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the chart", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Chart for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Charts"], - "summary": "Update a chart", - "description": "Update an existing chart using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchChart", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the chart", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "Charts" ], + "summary" : "Create a chart", + "description" : "Create a chart under an existing `service`.", + "operationId" : "createChart", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateChart" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "The chart", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Chart" + } + } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/charts/{id}/followers": { - "put": { - "tags": ["Charts"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as followed of this chart", - "operationId": "addFollowerToChart", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the chart", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/charts/name/{fqn}" : { + "get" : { + "tags" : [ "Charts" ], + "summary" : "Get a chart by fully qualified name", + "description" : "Get a chart by `fullyQualifiedName`.", + "operationId" : "getChartByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the chart", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,domain,dataProducts" } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "uuid" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The chart", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Chart" + } } } - } - }, - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "Chart for instance {id} is not found" + "404" : { + "description" : "Chart for instance {fqn} is not found" } } - } - }, - "/v1/charts/{id}/followers/{userId}": { - "delete": { - "tags": ["Charts"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the chart.", - "operationId": "deleteFollowerFromChart", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the chart", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, + "delete" : { + "tags" : [ "Charts" ], + "summary" : "Delete a chart by fully qualified name", + "description" : "Delete a chart by `fullyQualifiedName`.", + "operationId" : "deleteChartByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the chart", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Chart for instance {fqn} is not found" } } } }, - "/v1/charts/{id}/versions": { - "get": { - "tags": ["Charts"], - "summary": "List chart versions", - "description": "Get a list of all the versions of a chart identified by `id`", - "operationId": "listAllChartVersions", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the chart", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/charts/restore" : { + "put" : { + "tags" : [ "Charts" ], + "summary" : "Restore a soft deleted chart", + "description" : "Restore a soft deleted chart.", + "operationId" : "restore_3", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } + } + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Chart ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Chart" + } + } + } + } + } + } + }, + "/v1/charts/{id}" : { + "get" : { + "tags" : [ "Charts" ], + "summary" : "Get a chart by Id", + "description" : "Get a chart by `Id`.", + "operationId" : "getChartByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the chart", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,domain,dataProducts" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The chart", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Chart" + } + } + } + }, + "404" : { + "description" : "Chart for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Charts" ], + "summary" : "Delete a chart by Id", + "description" : "Delete a chart by `Id`.", + "operationId" : "deleteChart", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the chart", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Chart for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Charts" ], + "summary" : "Update a chart", + "description" : "Update an existing chart using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchChart", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the chart", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "List of chart versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/charts/{id}/versions/{version}": { - "get": { - "tags": ["Charts"], - "summary": "Get a version of the chart", - "description": "Get a version of the chart by given `Id`", - "operationId": "getSpecificChartVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the chart", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Chart version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/charts/{id}/followers" : { + "put" : { + "tags" : [ "Charts" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as followed of this chart", + "operationId" : "addFollowerToChart", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the chart", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "chart", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Chart" - } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" } } - }, - "404": { - "description": "Chart for instance {id} and version {version} is not found" } - } - } - }, - "/v1/classifications": { - "get": { - "tags": ["Classifications"], - "summary": "List classifications", - "description": "Get a list of classifications.", - "operationId": "listClassifications", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "usageCount,termCount" - } - }, - { - "name": "disabled", - "in": "query", - "description": "Filter Disabled Classifications", - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number classifications returned. (1 to 1000000, default = 10) ", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of classifications before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of classifications after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + }, + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Chart for instance {id} is not found" + } + } + } + }, + "/v1/charts/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Charts" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the chart.", + "operationId" : "deleteFollowerFromChart", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the chart", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/charts/{id}/versions" : { + "get" : { + "tags" : [ "Charts" ], + "summary" : "List chart versions", + "description" : "Get a list of all the versions of a chart identified by `id`", + "operationId" : "listAllChartVersions", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the chart", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of chart versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/charts/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Charts" ], + "summary" : "Get a version of the chart", + "description" : "Get a version of the chart by given `Id`", + "operationId" : "getSpecificChartVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the chart", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Chart version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "chart", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Chart" + } + } + } + }, + "404" : { + "description" : "Chart for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/charts/{id}/vote" : { + "put" : { + "tags" : [ "Charts" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ClassificationList" - } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" } } } - } - }, - "put": { - "tags": ["Classifications"], - "summary": "Update a classification", - "description": "Update an existing category identify by category name", - "operationId": "createOrUpdateClassification", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateClassification" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/classifications" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "List classifications", + "description" : "Get a list of classifications.", + "operationId" : "listClassifications", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "usageCount,termCount" + } + }, { + "name" : "disabled", + "in" : "query", + "description" : "Filter Disabled Classifications", + "schema" : { + "type" : "string" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number classifications returned. (1 to 1000000, default = 10) ", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of classifications before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of classifications after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ClassificationList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Classifications" ], + "summary" : "Update a classification", + "description" : "Update an existing category identify by category name", + "operationId" : "createOrUpdateClassification", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateClassification" } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } }, - "post": { - "tags": ["Classifications"], - "summary": "Create a classification", - "description": "Create a new classification. The request can include the children tags to be created along with the classification.", - "operationId": "createClassification", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateClassification" + "post" : { + "tags" : [ "Classifications" ], + "summary" : "Create a classification", + "description" : "Create a new classification. The request can include the children tags to be created along with the classification.", + "operationId" : "createClassification", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateClassification" } } } }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Classification" - } - } + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Classification" + } + } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } } }, - "/v1/classifications/name/{name}": { - "get": { - "tags": ["Classifications"], - "summary": "Get a classification by name", - "description": "Get a classification identified by name. The response includes classification information along with the entire hierarchy of all the children tags.", - "operationId": "getClassificationByName", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the classification", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "usageCount,termCount" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/classifications/name/{name}" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "Get a classification by name", + "description" : "Get a classification identified by name. The response includes classification information along with the entire hierarchy of all the children tags.", + "operationId" : "getClassificationByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the classification", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "usageCount,termCount" } - ], - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Classification" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Classification" } } } }, - "404": { - "description": "Classification for instance {name} is not found" + "404" : { + "description" : "Classification for instance {name} is not found" } } }, - "delete": { - "tags": ["Classifications"], - "summary": "Delete classification by name", - "description": "Delete a classification by `name` and all the tags under it.", - "operationId": "deleteClassificationByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the classification", - "required": true, - "schema": { - "type": "string" - } + "delete" : { + "tags" : [ "Classifications" ], + "summary" : "Delete classification by name", + "description" : "Delete a classification by `name` and all the tags under it.", + "operationId" : "deleteClassificationByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "200": { - "description": "OK" + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the classification", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "classification for instance {name} is not found" + "404" : { + "description" : "classification for instance {name} is not found" } } } }, - "/v1/classifications/restore": { - "put": { - "tags": ["Classifications"], - "summary": "Restore a soft deleted classification", - "description": "Restore a soft deleted classification.", - "operationId": "restoreClassification", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/classifications/restore" : { + "put" : { + "tags" : [ "Classifications" ], + "summary" : "Restore a soft deleted classification", + "description" : "Restore a soft deleted classification.", + "operationId" : "restoreClassification", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Table ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } + "responses" : { + "200" : { + "description" : "Successfully restored the Table ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" + } + } + } + } + } + } + }, + "/v1/classifications/{id}" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "Get a classification by id", + "description" : "Get a classification by `id`", + "operationId" : "getClassificationByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the classification", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "usageCount,termCount" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "classification", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Classification" + } + } + } + }, + "404" : { + "description" : "Classification for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Classifications" ], + "summary" : "Delete classification by id", + "description" : "Delete a classification and all the tags under it.", + "operationId" : "deleteClassification", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the classification", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + }, + "patch" : { + "tags" : [ "Classifications" ], + "summary" : "Update a classification", + "description" : "Update an existing classification using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchClassification", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the classification", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/classifications/{id}/versions" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "List classification versions", + "description" : "Get a list of all the versions of a classification identified by `id`", + "operationId" : "listAllClassificationVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the classification", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of classification versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/classifications/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "Get a version of the classification", + "description" : "Get a version of the classification by given `id`", + "operationId" : "getSpecificClassificationVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the classification", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "classification version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "glossaries", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Classification" + } + } + } + }, + "404" : { + "description" : "Classification for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/containers" : { + "get" : { + "tags" : [ "Containers" ], + "summary" : "List Containers", + "description" : "Get a list of containers, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listContainers", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "parent,children,dataModel,owner,tags,followers,extension,domain" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter Containers by Object Store Service name", + "schema" : { + "type" : "string", + "example" : "s3West" + } + }, { + "name" : "root", + "in" : "query", + "description" : "Filter by Containers at the root level. E.g., without parent", + "schema" : { + "type" : "boolean", + "example" : true, + "default" : false + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number containers returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of containers before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of containers after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of containers", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ContainerList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Containers" ], + "summary" : "Create or update a Container", + "description" : "Create a new Container, if it does not exist or update an existing container.", + "operationId" : "createOrUpdateContainer", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateContainer" } } } - } - } - }, - "/v1/classifications/{id}": { - "get": { - "tags": ["Classifications"], - "summary": "Get a classification by id", - "description": "Get a classification by `id`", - "operationId": "getClassificationByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the classification", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "responses" : { + "200" : { + "description" : "The Container", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Container" + } + } } }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "usageCount,termCount" + "400" : { + "description" : "Bad request" + } + } + }, + "post" : { + "tags" : [ "Containers" ], + "summary" : "Create a Container", + "description" : "Create a new Container.", + "operationId" : "createContainer", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateContainer" + } } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + }, + "responses" : { + "200" : { + "description" : "Container", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Container" + } + } } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/containers/name/{fqn}" : { + "get" : { + "tags" : [ "Containers" ], + "summary" : "Get an Container by name", + "description" : "Get an Container by fully qualified name.", + "operationId" : "getContainerByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "classification", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Classification" + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "parent,children,dataModel,owner,tags,followers,extension,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The container", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Container" } } } }, - "404": { - "description": "Classification for instance {id} is not found" + "404" : { + "description" : "Container for instance {id} is not found" } } }, - "delete": { - "tags": ["Classifications"], - "summary": "Delete classification by id", - "description": "Delete a classification and all the tags under it.", - "operationId": "deleteClassification", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } + "delete" : { + "tags" : [ "Containers" ], + "summary" : "Delete a Container by fully qualified name", + "description" : "Delete a Container by `fullyQualifiedName`.", + "operationId" : "deleteContainerByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Name of the Container", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - { - "name": "id", - "in": "path", - "description": "Id of the classification", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "404" : { + "description" : "container for instance {fqn} is not found" + } + } + } + }, + "/v1/containers/restore" : { + "put" : { + "tags" : [ "Containers" ], + "summary" : "Restore a soft deleted Container.", + "description" : "Restore a soft deleted Container.", + "operationId" : "restore_28", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - } - }, - "patch": { - "tags": ["Classifications"], - "summary": "Update a classification", - "description": "Update an existing classification using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchClassification", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the classification", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Container ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Container" + } + } + } + } + } + } + }, + "/v1/containers/{id}" : { + "get" : { + "tags" : [ "Containers" ], + "summary" : "Get an Object Store Container", + "description" : "Get an Object Store container by `id`.", + "operationId" : "getContainerByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "parent,children,dataModel,owner,tags,followers,extension,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The container", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Container" + } + } + } + }, + "404" : { + "description" : "Container for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Containers" ], + "summary" : "Delete a Container", + "description" : "Delete a Container by `id`.", + "operationId" : "deleteContainer", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Container Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "container for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Containers" ], + "summary" : "Update a Container", + "description" : "Update an existing Container using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchContainer", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Container", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/classifications/{id}/versions": { - "get": { - "tags": ["Classifications"], - "summary": "List classification versions", - "description": "Get a list of all the versions of a classification identified by `id`", - "operationId": "listAllClassificationVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the classification", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/containers/{id}/followers" : { + "put" : { + "tags" : [ "Containers" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as follower of this container", + "operationId" : "addFollower_5", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the container", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" + } } } - ], - "responses": { - "200": { - "description": "List of classification versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } - } + }, + "404" : { + "description" : "container for instance {id} is not found" + } } } }, - "/v1/classifications/{id}/versions/{version}": { - "get": { - "tags": ["Classifications"], - "summary": "Get a version of the classification", - "description": "Get a version of the classification by given `id`", - "operationId": "getSpecificClassificationVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the classification", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "classification version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/containers/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Containers" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the container.", + "operationId" : "deleteFollower_6", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the container", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "glossaries", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Classification" + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } - }, - "404": { - "description": "Classification for instance {id} and version {version} is not found" } } } }, - "/v1/containers": { - "get": { - "tags": ["Containers"], - "summary": "List Containers", - "description": "Get a list of containers, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listContainers", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "parent,children,dataModel,owner,tags,followers,extension" - } - }, - { - "name": "service", - "in": "query", - "description": "Filter Containers by Object Store Service name", - "schema": { - "type": "string", - "example": "s3West" - } - }, - { - "name": "root", - "in": "query", - "description": "Filter by Containers at the root level. E.g., without parent", - "schema": { - "type": "boolean", - "example": true, - "default": false - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number containers returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of containers before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of containers after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/containers/{id}/versions" : { + "get" : { + "tags" : [ "Containers" ], + "summary" : "List Container versions", + "description" : "Get a list of all the versions of a container identified by `id`", + "operationId" : "listAllContainerVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Container Id", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of containers", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ContainerList" + } ], + "responses" : { + "200" : { + "description" : "List of Container versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } } } - }, - "put": { - "tags": ["Containers"], - "summary": "Create or update a Container", - "description": "Create a new Container, if it does not exist or update an existing container.", - "operationId": "createOrUpdateContainer", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateContainer" - } - } + } + }, + "/v1/containers/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Containers" ], + "summary" : "Get a version of the Container", + "description" : "Get a version of the Container by given `id`", + "operationId" : "getSpecificContainerVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Container Id", + "required" : true, + "schema" : { + "type" : "string" } - }, - "responses": { - "200": { - "description": "The Container", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Container" + }, { + "name" : "version", + "in" : "path", + "description" : "Container version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "Container", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Container" } } } - }, - "400": { - "description": "Bad request" + }, + "404" : { + "description" : "Container for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/containers/{id}/vote" : { + "put" : { + "tags" : [ "Containers" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_15", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } + } } - } - }, - "post": { - "tags": ["Containers"], - "summary": "Create a Container", - "description": "Create a new Container.", - "operationId": "createContainer", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateContainer" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/dashboard/datamodels" : { + "get" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "List Dashboard Data Models", + "description" : "Get a list of dashboard datamodels, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listDashboardDataModels", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,followers,domain" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter dashboardDataModel by service name", + "schema" : { + "type" : "string", + "example" : "superset" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number dashboardDataModel returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of dashboardDataModel before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of dashboardDataModel after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of dashboard datamodels", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardDataModelList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Create or update dashboard datamodel", + "description" : "Create a dashboard datamodel, it it does not exist or update an existing dashboard datamodel.", + "operationId" : "createOrUpdateDataModel", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDashboardDataModel" } } } }, - "responses": { - "200": { - "description": "Container", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Container" + "responses" : { + "200" : { + "description" : "The updated dashboard datamodel", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardDataModel" } } } - }, - "400": { - "description": "Bad request" } } - } - }, - "/v1/containers/name/{fqn}": { - "get": { - "tags": ["Containers"], - "summary": "Get an Container by name", - "description": "Get an Container by fully qualified name.", - "operationId": "getContainerByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "parent,children,dataModel,owner,tags,followers,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + }, + "post" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Create a dashboard datamodel", + "description" : "Create a dashboard datamodel under an existing `service`.", + "operationId" : "createDataModel", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDashboardDataModel" + } } } - ], - "responses": { - "200": { - "description": "The container", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Container" + }, + "responses" : { + "200" : { + "description" : "The dashboard datamodel", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardDataModel" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/dashboard/datamodels/name/{fqn}" : { + "get" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Get a dashboard datamodel by fully qualified name", + "description" : "Get a dashboard datamodel by `fullyQualifiedName`.", + "operationId" : "getDataModelByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the dashboard datamodel", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,followers,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The dashboard datamodel", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardDataModel" } } } }, - "404": { - "description": "Container for instance {id} is not found" + "404" : { + "description" : "DataModel for instance {fqn} is not found" } } }, - "delete": { - "tags": ["Containers"], - "summary": "Delete a Container by fully qualified name", - "description": "Delete a Container by `fullyQualifiedName`.", - "operationId": "deleteContainerByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Name of the Container", - "required": true, - "schema": { - "type": "string" - } + "delete" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Delete a data model by fully qualified name.", + "description" : "Delete a data model by `fullyQualifiedName`.", + "operationId" : "deleteDataModelByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the data model", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "container for instance {fqn} is not found" + "404" : { + "description" : "DataModel for instance {fqn} is not found" } } } }, - "/v1/containers/restore": { - "put": { - "tags": ["Containers"], - "summary": "Restore a soft deleted Container.", - "description": "Restore a soft deleted Container.", - "operationId": "restore_23", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/dashboard/datamodels/restore" : { + "put" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Restore a soft deleted data model.", + "description" : "Restore a soft deleted data model.", + "operationId" : "restore_9", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Container ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Container" - } - } + "responses" : { + "200" : { + "description" : "Successfully restored the data model", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardDataModel" + } + } + } + } + } + } + }, + "/v1/dashboard/datamodels/{id}" : { + "get" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Get a dashboard datamodel by Id", + "description" : "Get a dashboard datamodel by `id`.", + "operationId" : "getDataModelByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard datamodel", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,followers,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The dashboard datamodel", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardDataModel" + } + } + } + }, + "404" : { + "description" : "DataModel for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Delete a data model by `id`.", + "description" : "Delete a dashboard datamodel by `id`.", + "operationId" : "deleteDataModel", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the data model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "DataModel for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Update a dashboard datamodel", + "description" : "Update an existing dashboard datamodel using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDataModel", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard datamodel", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/containers/{id}": { - "get": { - "tags": ["Containers"], - "summary": "Get an Object Store Container", - "description": "Get an Object Store container by `id`.", - "operationId": "getContainerByID", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/dashboard/datamodels/{id}/followers" : { + "put" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as followed of this data model", + "operationId" : "addFollowerToDataModel", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the data model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" + } } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "parent,children,dataModel,owner,tags,followers,extension" + } + }, + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "DataModel for instance {id} is not found" + } + } + } + }, + "/v1/dashboard/datamodels/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the data model.", + "operationId" : "deleteFollowerFromDataModel", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the data model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/dashboard/datamodels/{id}/versions" : { + "get" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "List dashboard datamodel versions", + "description" : "Get a list of all the versions of a dashboard datamodel identified by `id`", + "operationId" : "listAllDataModelVersions", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard datamodel", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of dashboard datamodel versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/dashboard/datamodels/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Get a version of the dashboard datamodel", + "description" : "Get a version of the dashboard datamodel by given `id`", + "operationId" : "getSpecificDataModelVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard datamodel", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "DataModel version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "dashboard datamodel", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardDataModel" + } + } + } + }, + "404" : { + "description" : "DataModel for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/dashboard/datamodels/{id}/vote" : { + "put" : { + "tags" : [ "Dashboard Data Models" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_6", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/dashboards" : { + "get" : { + "tags" : [ "Dashboards" ], + "summary" : "List dashboards", + "description" : "Get a list of dashboards, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listDashboards", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,charts,followers,tags,usageSummary,extension,dataModels,domain,dataProducts" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter dashboards by service name", + "schema" : { + "type" : "string", + "example" : "superset" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number dashboards returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of dashboards before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of dashboards after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of dashboards", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Dashboards" ], + "summary" : "Create or update a dashboard", + "description" : "Create a new dashboard, if it does not exist or update an existing dashboard.", + "operationId" : "createOrUpdateDashboard", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDashboard" + } } } - ], - "responses": { - "200": { - "description": "The container", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Container" + }, + "responses" : { + "200" : { + "description" : "The dashboard", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Dashboard" } } } }, - "404": { - "description": "Container for instance {id} is not found" + "400" : { + "description" : "Bad request" } } }, - "delete": { - "tags": ["Containers"], - "summary": "Delete a Container", - "description": "Delete a Container by `id`.", - "operationId": "deleteContainer", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Container Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "post" : { + "tags" : [ "Dashboards" ], + "summary" : "Create a dashboard", + "description" : "Create a new dashboard.", + "operationId" : "createDashboard", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDashboard" + } } } - ], - "responses": { - "200": { - "description": "OK" + }, + "responses" : { + "200" : { + "description" : "The dashboard", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Dashboard" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/dashboards/name/{fqn}" : { + "get" : { + "tags" : [ "Dashboards" ], + "summary" : "Get a dashboard by fully qualified name", + "description" : "Get a dashboard by fully qualified name.", + "operationId" : "getDashboardByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the dashboard", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,charts,followers,tags,usageSummary,extension,dataModels,domain,dataProducts" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The dashboard", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Dashboard" + } + } + } }, - "404": { - "description": "container for instance {id} is not found" + "404" : { + "description" : "Dashboard for instance {fqn} is not found" } } }, - "patch": { - "tags": ["Containers"], - "summary": "Update a Container", - "description": "Update an existing Container using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" + "delete" : { + "tags" : [ "Dashboards" ], + "summary" : "Delete a dashboard by fully qualified name", + "description" : "Delete a dashboard by `fullyQualifiedName`.", + "operationId" : "deleteDashboardByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the dashboard", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Dashboard for instance {fqn} is not found" + } + } + } + }, + "/v1/dashboards/restore" : { + "put" : { + "tags" : [ "Dashboards" ], + "summary" : "Restore a soft deleted dashboard", + "description" : "Restore a soft deleted dashboard.", + "operationId" : "restore_4", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } + } + } }, - "operationId": "patchContainer", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Container", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + "responses" : { + "200" : { + "description" : "Successfully restored the Dashboard.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Dashboard" + } + } + } + } + } + } + }, + "/v1/dashboards/{id}" : { + "get" : { + "tags" : [ "Dashboards" ], + "summary" : "Get a dashboard by Id", + "description" : "Get a dashboard by `Id`.", + "operationId" : "getDashboardByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,charts,followers,tags,usageSummary,extension,dataModels,domain,dataProducts" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The dashboard", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Dashboard" + } + } + } + }, + "404" : { + "description" : "Dashboard for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Dashboards" ], + "summary" : "Delete a dashboard by Id", + "description" : "Delete a dashboard by `Id`.", + "operationId" : "deleteDashboard", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Dashboard for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Dashboards" ], + "summary" : "Update a dashboard", + "description" : "Update an existing dashboard using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDashboard", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/containers/{id}/followers": { - "put": { - "tags": ["Containers"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as follower of this container", - "operationId": "addFollower_3", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the container", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/dashboards/{id}/followers" : { + "put" : { + "tags" : [ "Dashboards" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as follower of this dashboard", + "operationId" : "addFollowerToDashboard", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" + } } } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "uuid" + }, + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Dashboard for instance {id} is not found" + } + } + } + }, + "/v1/dashboards/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Dashboards" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the dashboard.", + "operationId" : "removeFollowerFromDashboard", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/dashboards/{id}/versions" : { + "get" : { + "tags" : [ "Dashboards" ], + "summary" : "List dashboard versions", + "description" : "Get a list of all the versions of a dashboard identified by `Id`", + "operationId" : "listAllDashboardVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of dashboard versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/dashboards/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Dashboards" ], + "summary" : "Get a version of the dashboard", + "description" : "Get a version of the dashboard by given `id`", + "operationId" : "getSpecificDashboardVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Dashboard version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "dashboard", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Dashboard" + } + } + } + }, + "404" : { + "description" : "Dashboard for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/dashboards/{id}/vote" : { + "put" : { + "tags" : [ "Dashboards" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" } } } }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } }, - "404": { - "description": "container for instance {id} is not found" + "404" : { + "description" : "model for instance {id} is not found" } } } }, - "/v1/containers/{id}/followers/{userId}": { - "delete": { - "tags": ["Containers"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the container.", - "operationId": "deleteFollower_4", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the container", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string" - } + "/v1/dataProducts" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "List dataProducts", + "description" : "Get a list of DataProducts.", + "operationId" : "listDataProducts", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "domain,owner,experts,assets" } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" + }, { + "name" : "domain", + "in" : "query", + "description" : "Filter data products by domain name", + "schema" : { + "type" : "string", + "example" : "marketing" + } + }, { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of DataProduct before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of DataProduct after this cursor", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of DataProducts", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DataProductList" } } } } } - } - }, - "/v1/containers/{id}/versions": { - "get": { - "tags": ["Containers"], - "summary": "List Container versions", - "description": "Get a list of all the versions of a container identified by `id`", - "operationId": "listAllContainerVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Container Id", - "required": true, - "schema": { - "type": "string" + }, + "put" : { + "tags" : [ "Domains" ], + "summary" : "Create or update a dataProduct", + "description" : "Create a dataProduct. if it does not exist. If a dataProduct already exists, update the dataProduct.", + "operationId" : "createOrUpdateDataProduct", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDataProduct" + } } } - ], - "responses": { - "200": { - "description": "List of Container versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "200" : { + "description" : "The dataProduct", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DataProduct" } } } + }, + "400" : { + "description" : "Bad request" + } + } + }, + "post" : { + "tags" : [ "Domains" ], + "summary" : "Create a dataProduct", + "description" : "Create a new dataProduct.", + "operationId" : "createDataProduct", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDataProduct" + } + } + } + }, + "responses" : { + "200" : { + "description" : "The dataProduct ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DataProduct" + } + } + } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/containers/{id}/versions/{version}": { - "get": { - "tags": ["Containers"], - "summary": "Get a version of the Container", - "description": "Get a version of the Container by given `id`", - "operationId": "getSpecificContainerVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Container Id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "version", - "in": "path", - "description": "Container version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/dataProducts/name/{name}" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "Get a dataProduct by name", + "description" : "Get a dataProduct by `name`.", + "operationId" : "getDataProductByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the dataProduct", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "Container", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Container" + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "domain,owner,experts,assets" + } + } ], + "responses" : { + "200" : { + "description" : "dataProduct", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DataProduct" } } } }, - "404": { - "description": "Container for instance {id} and version {version} is not found" + "404" : { + "description" : "DataProduct for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Domains" ], + "summary" : "Delete a dataProduct by name", + "description" : "Delete a dataProduct by `name`.", + "operationId" : "deleteDataProductByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the dataProduct", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "DataProduct for instance {name} is not found" } } } }, - "/v1/dashboard/datamodels": { - "get": { - "tags": ["Dashboard Data Models"], - "summary": "List Dashboard Data Models", - "description": "Get a list of dashboard datamodels, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listDashboardDataModels", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tags,followers" - } - }, - { - "name": "service", - "in": "query", - "description": "Filter dashboardDataModel by service name", - "schema": { - "type": "string", - "example": "superset" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number dashboardDataModel returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of dashboardDataModel before this cursor", - "schema": { - "type": "string" - } + "/v1/dataProducts/{id}" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "Get a dataProduct by Id", + "description" : "Get a dataProduct by `Id`.", + "operationId" : "getDataProductByID", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "domain,owner,experts,assets" + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the dataProduct", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "The dataProduct", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DataProduct" + } + } + } + }, + "404" : { + "description" : "DataProduct for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Domains" ], + "summary" : "Delete a dataProduct by Id", + "description" : "Delete a dataProduct by `Id`.", + "operationId" : "deleteDataProduct", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dataProduct", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - { - "name": "after", - "in": "query", - "description": "Returns list of dashboardDataModel after this cursor", - "schema": { - "type": "string" + "404" : { + "description" : "DataProduct for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Domains" ], + "summary" : "Update a dataProduct", + "description" : "Update an existing dataProduct using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDataProduct", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dataProduct", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/dataProducts/{id}/versions" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "List dataProduct versions", + "description" : "Get a list of all the versions of a dataProduct identified by `Id`", + "operationId" : "listAllDataProductVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dataProduct", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of dataProduct versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/dataProducts/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "Get a version of the dataProduct", + "description" : "Get a version of the dataProduct by given `Id`", + "operationId" : "listSpecificDataProductVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dataProduct", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "DataProduct version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "dataProduct", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DataProduct" + } + } + } + }, + "404" : { + "description" : "DataProduct for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/dataQuality/testCases" : { + "get" : { + "tags" : [ "Test Cases" ], + "summary" : "List test cases", + "description" : "Get a list of test. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.Use the `testSuite` field to get the executable Test Suite linked to this test case or use the `testSuites` field to list test suites (executable and logical) linked.", + "operationId" : "listTestCases", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,testSuite,testDefinition,testSuites" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number tests returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of tests before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of tests after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "entityLink", + "in" : "query", + "description" : "Return list of tests by entity link", + "schema" : { + "type" : "string", + "example" : "" + } + }, { + "name" : "testSuiteId", + "in" : "query", + "description" : "Returns list of tests filtered by the testSuite id", + "schema" : { + "type" : "string" + } + }, { + "name" : "orderByLastExecutionDate", + "in" : "query", + "description" : "Returns the list of tests ordered by the most recent execution date", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "includeAllTests", + "in" : "query", + "description" : "Include all the tests at the entity level", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of test definitions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCaseList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Test Cases" ], + "summary" : "Update test case", + "description" : "Create a TestCase, it it does not exist or update an existing TestCase.", + "operationId" : "createOrUpdateTest", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTestCase" + } } } - ], - "responses": { - "200": { - "description": "List of dashboard datamodels", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardDataModelList" + }, + "responses" : { + "200" : { + "description" : "The updated testCase.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCase" } } } } } }, - "put": { - "tags": ["Dashboard Data Models"], - "summary": "Create or update dashboard datamodel", - "description": "Create a dashboard datamodel, it it does not exist or update an existing dashboard datamodel.", - "operationId": "createOrUpdateDataModel", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDashboardDataModel" + "post" : { + "tags" : [ "Test Cases" ], + "summary" : "Create a test case", + "description" : "Create a test case", + "operationId" : "createTestCase", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTestCase" } } } }, - "responses": { - "200": { - "description": "The updated dashboard datamodel", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardDataModel" + "responses" : { + "200" : { + "description" : "The test", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCase" } } } + }, + "400" : { + "description" : "Bad request" } } - }, - "post": { - "tags": ["Dashboard Data Models"], - "summary": "Create a dashboard datamodel", - "description": "Create a dashboard datamodel under an existing `service`.", - "operationId": "createDataModel", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDashboardDataModel" + } + }, + "/v1/dataQuality/testCases/logicalTestCases" : { + "put" : { + "tags" : [ "Test Cases" ], + "summary" : "Add test cases to a logical test suite", + "description" : "Add test cases to a logical test suite.", + "operationId" : "addTestCasesToLogicalTestSuite", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateLogicalTestCases" + } + } + } + }, + "responses" : { + "200" : { + "description" : "Successfully added test cases to the logical test suite.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" + } + } + } + } + } + } + }, + "/v1/dataQuality/testCases/logicalTestCases/{testSuiteId}/{id}" : { + "delete" : { + "tags" : [ "Test Cases" ], + "summary" : "Delete a logical test case by Id from a test suite", + "description" : "Delete a logical test case by `Id` a test suite.", + "operationId" : "deleteLogicalTestCase", + "parameters" : [ { + "name" : "testSuiteId", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "id", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Logical test case for instance {id} is not found" + } + } + } + }, + "/v1/dataQuality/testCases/name/{fqn}" : { + "get" : { + "tags" : [ "Test Cases" ], + "summary" : "Get a test case by fully qualified name", + "description" : "Get a test case by `fullyQualifiedName`.", + "operationId" : "getTestCaseByName", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the test case", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,testSuite,testDefinition,testSuites" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The TestCase", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCase" + } + } + } + }, + "404" : { + "description" : "Test for instance {fqn} is not found" + } + } + }, + "delete" : { + "tags" : [ "Test Cases" ], + "summary" : "Delete a test case by fully qualified name", + "description" : "Delete a testCase by `fullyQualifiedName`.", + "operationId" : "deleteTestCaseByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the test case", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "TestCase for instance {fqn} is not found" + } + } + } + }, + "/v1/dataQuality/testCases/restore" : { + "put" : { + "tags" : [ "Test Cases" ], + "summary" : "Restore a soft deleted test case", + "description" : "Restore a soft deleted test case.", + "operationId" : "restore_10", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "The dashboard datamodel", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardDataModel" + "responses" : { + "200" : { + "description" : "Successfully restored the Chart ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCase" } } } - }, - "400": { - "description": "Bad request" } } } }, - "/v1/dashboard/datamodels/name/{fqn}": { - "get": { - "tags": ["Dashboard Data Models"], - "summary": "Get a dashboard datamodel by fully qualified name", - "description": "Get a dashboard datamodel by `fullyQualifiedName`.", - "operationId": "getDataModelByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the dashboard datamodel", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tags,followers" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/dataQuality/testCases/{fqn}/testCaseResult" : { + "get" : { + "tags" : [ "Test Cases" ], + "summary" : "List of test case results", + "description" : "Get a list of all the test case results for the given testCase id, optionally filtered by `startTs` and `endTs` of the profile. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listTestCaseResults", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the test case", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "The dashboard datamodel", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardDataModel" + }, { + "name" : "startTs", + "in" : "query", + "description" : "Filter testCase results after the given start timestamp", + "schema" : { + "type" : "number" + } + }, { + "name" : "endTs", + "in" : "query", + "description" : "Filter testCase results before the given end timestamp", + "schema" : { + "type" : "number" + } + } ], + "responses" : { + "200" : { + "description" : "List of testCase results", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCaseResultList" } } } - }, - "404": { - "description": "DataModel for instance {fqn} is not found" } } }, - "delete": { - "tags": ["Dashboard Data Models"], - "summary": "Delete a data model by fully qualified name.", - "description": "Delete a data model by `fullyQualifiedName`.", - "operationId": "deleteDataModelByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the data model", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "DataModel for instance {fqn} is not found" + "put" : { + "tags" : [ "Test Cases" ], + "summary" : "Add test case result data", + "description" : "Add test case result data to the testCase.", + "operationId" : "addTestCaseResult", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the test case", + "required" : true, + "schema" : { + "type" : "string" } - } - } - }, - "/v1/dashboard/datamodels/restore": { - "put": { - "tags": ["Dashboard Data Models"], - "summary": "Restore a soft deleted data model.", - "description": "Restore a soft deleted data model.", - "operationId": "restore_6", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCaseResult" } } } }, - "responses": { - "200": { - "description": "Successfully restored the data model", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardDataModel" + "responses" : { + "200" : { + "description" : "Successfully updated the TestCase. ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCase" } } } @@ -2382,1004 +5279,1823 @@ } } }, - "/v1/dashboard/datamodels/{id}": { - "get": { - "tags": ["Dashboard Data Models"], - "summary": "Get a dashboard datamodel by Id", - "description": "Get a dashboard datamodel by `id`.", - "operationId": "getDataModelByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard datamodel", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tags,followers" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/dataQuality/testCases/{fqn}/testCaseResult/{timestamp}" : { + "delete" : { + "tags" : [ "Test Cases" ], + "summary" : "Delete test case result", + "description" : "Delete testCase result for a testCase.", + "operationId" : "DeleteTestCaseResult", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the test case", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "The dashboard datamodel", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardDataModel" + }, { + "name" : "timestamp", + "in" : "path", + "description" : "Timestamp of the testCase result", + "required" : true, + "schema" : { + "type" : "integer", + "format" : "int64" + } + } ], + "responses" : { + "200" : { + "description" : "Successfully deleted the TestCaseResult", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCase" } } } - }, - "404": { - "description": "DataModel for instance {id} is not found" } } }, - "delete": { - "tags": ["Dashboard Data Models"], - "summary": "Delete a data model by `id`.", - "description": "Delete a dashboard datamodel by `id`.", - "operationId": "deleteDataModel", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the data model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "patch" : { + "tags" : [ "Test Cases" ], + "summary" : "Update a test case result", + "description" : "Update an existing test case using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchTestCaseResult", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "fqn of the test case", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "timestamp", + "in" : "path", + "description" : "Timestamp of the testCase result", + "required" : true, + "schema" : { + "type" : "integer", + "format" : "int64" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "DataModel for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Dashboard Data Models"], - "summary": "Update a dashboard datamodel", - "description": "Update an existing dashboard datamodel using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchDataModel", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard datamodel", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/dataQuality/testCases/{id}" : { + "get" : { + "tags" : [ "Test Cases" ], + "summary" : "Get a test case by Id", + "description" : "Get a TestCase by `Id`.", + "operationId" : "get_3", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test case", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,testSuite,testDefinition,testSuites" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The TestCases", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCase" + } + } + } + }, + "404" : { + "description" : "Test for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Test Cases" ], + "summary" : "Delete a test case by Id", + "description" : "Delete a test case by `Id`.", + "operationId" : "deleteTestCase", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the test case", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Test case for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Test Cases" ], + "summary" : "Update a test case", + "description" : "Update an existing test using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchTest", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test case", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/dataQuality/testCases/{id}/versions" : { + "get" : { + "tags" : [ "Test Cases" ], + "summary" : "List test case versions", + "description" : "Get a list of all the versions of a testCases identified by `Id`", + "operationId" : "listAllTestCaseVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test case", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of test versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/dataQuality/testCases/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Test Cases" ], + "summary" : "Get a version of the test case", + "description" : "Get a version of the test case by given `Id`", + "operationId" : "getSpecificTestCaseVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test case", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Test version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "Test", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCase" + } + } + } + }, + "404" : { + "description" : "Test for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/dataQuality/testDefinitions" : { + "get" : { + "tags" : [ "Test Definitions" ], + "summary" : "List test definitions", + "description" : "Get a list of test definitions, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listTestDefinitions", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number test definitions returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of test definitions before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of test definitions after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + }, { + "name" : "entityType", + "in" : "query", + "description" : "Filter by entityType.", + "schema" : { + "type" : "string", + "enum" : [ "TABLE", "COLUMN" ] + } + }, { + "name" : "testPlatform", + "in" : "query", + "description" : "Filter by a test platform", + "schema" : { + "type" : "string", + "enum" : [ "OpenMetadata", "GreatExpectations", "DBT", "Deequ", "Soda", "Other" ] + } + }, { + "name" : "supportedDataType", + "in" : "query", + "description" : "Filter tests definition by supported data type", + "schema" : { + "type" : "string", + "enum" : [ "NUMBER", "TINYINT", "SMALLINT", "INT", "BIGINT", "BYTEINT", "BYTES", "FLOAT", "DOUBLE", "DECIMAL", "NUMERIC", "TIMESTAMP", "TIMESTAMPZ", "TIME", "DATE", "DATETIME", "INTERVAL", "STRING", "MEDIUMTEXT", "TEXT", "CHAR", "LONG", "VARCHAR", "BOOLEAN", "BINARY", "VARBINARY", "ARRAY", "BLOB", "LONGBLOB", "MEDIUMBLOB", "MAP", "STRUCT", "UNION", "SET", "GEOGRAPHY", "ENUM", "JSON", "UUID", "VARIANT", "GEOMETRY", "BYTEA", "AGGREGATEFUNCTION", "ERROR", "FIXED", "RECORD", "NULL", "SUPER", "HLLSKETCH", "PG_LSN", "PG_SNAPSHOT", "TSQUERY", "TXID_SNAPSHOT", "XML", "MACADDR", "TSVECTOR", "UNKNOWN", "CIDR", "INET", "CLOB", "ROWID", "LOWCARDINALITY", "YEAR", "POINT", "POLYGON", "TUPLE", "SPATIAL", "TABLE", "NTEXT", "IMAGE", "IPV4", "IPV6", "DATETIMERANGE" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of test definitions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestDefinitionList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Test Definitions" ], + "summary" : "Update test definition", + "description" : "Create a test definition, if it does not exist, or update an existing test definition.", + "operationId" : "createOrUpdateTestDefinition", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTestDefinition" + } } } - } - } - }, - "/v1/dashboard/datamodels/{id}/followers": { - "put": { - "tags": ["Dashboard Data Models"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as followed of this data model", - "operationId": "addFollowerToDataModel", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the data model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "responses" : { + "200" : { + "description" : "The updated test definition ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestDefinition" + } + } } } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "uuid" + } + }, + "post" : { + "tags" : [ "Test Definitions" ], + "summary" : "Create a test definition", + "description" : "Create a Test definition.", + "operationId" : "createTestDefinition", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTestDefinition" } } } }, - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "DataModel for instance {id} is not found" - } - } - } - }, - "/v1/dashboard/datamodels/{id}/followers/{userId}": { - "delete": { - "tags": ["Dashboard Data Models"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the data model.", - "operationId": "deleteFollowerFromDataModel", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the data model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "responses" : { + "200" : { + "description" : "The test definition", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestDefinition" + } + } } }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + "400" : { + "description" : "Bad request" } } } }, - "/v1/dashboard/datamodels/{id}/versions": { - "get": { - "tags": ["Dashboard Data Models"], - "summary": "List dashboard datamodel versions", - "description": "Get a list of all the versions of a dashboard datamodel identified by `id`", - "operationId": "listAllDataModelVersions", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard datamodel", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/dataQuality/testDefinitions/name/{name}" : { + "get" : { + "tags" : [ "Test Definitions" ], + "summary" : "Get a test definition by name", + "description" : "Get a test definition by `name`.", + "operationId" : "getTestDefinitionByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the test definition", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of dashboard datamodel versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner" } - } - } - }, - "/v1/dashboard/datamodels/{id}/versions/{version}": { - "get": { - "tags": ["Dashboard Data Models"], - "summary": "Get a version of the dashboard datamodel", - "description": "Get a version of the dashboard datamodel by given `id`", - "operationId": "getSpecificDataModelVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard datamodel", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "DataModel version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] } - ], - "responses": { - "200": { - "description": "dashboard datamodel", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardDataModel" + } ], + "responses" : { + "200" : { + "description" : "The test definition", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestDefinition" } } } }, - "404": { - "description": "DataModel for instance {id} and version {version} is not found" + "404" : { + "description" : "Test Definition for instance {name} is not found" } } - } - }, - "/v1/dashboards": { - "get": { - "tags": ["Dashboards"], - "summary": "List dashboards", - "description": "Get a list of dashboards, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listDashboards", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,charts,followers,tags,usageSummary,extension,dataModels" - } - }, - { - "name": "service", - "in": "query", - "description": "Filter dashboards by service name", - "schema": { - "type": "string", - "example": "superset" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number dashboards returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of dashboards before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of dashboards after this cursor", - "schema": { - "type": "string" - } + }, + "delete" : { + "tags" : [ "Test Definitions" ], + "summary" : "Delete a test definition", + "description" : "Delete a test definition by `name`.", + "operationId" : "deleteTestDefinitionByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the test definition", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "404" : { + "description" : "Test definition for instance {name} is not found" } - ], - "responses": { - "200": { - "description": "List of dashboards", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardList" - } + } + } + }, + "/v1/dataQuality/testDefinitions/restore" : { + "put" : { + "tags" : [ "Test Definitions" ], + "summary" : "Restore a soft deleted test definition", + "description" : "Restore a soft deleted TestDefinition.", + "operationId" : "restore_11", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } - } - }, - "put": { - "tags": ["Dashboards"], - "summary": "Create or update a dashboard", - "description": "Create a new dashboard, if it does not exist or update an existing dashboard.", - "operationId": "createOrUpdateDashboard", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDashboard" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the TestDefinition. ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestDefinition" + } + } + } + } + } + } + }, + "/v1/dataQuality/testDefinitions/{id}" : { + "get" : { + "tags" : [ "Test Definitions" ], + "summary" : "Get a test definition by Id", + "description" : "Get a Test Definition by `Id`.", + "operationId" : "get_4", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test definition", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The Test definition", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestDefinition" + } + } + } + }, + "404" : { + "description" : "Test Definition for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Test Definitions" ], + "summary" : "Delete a test definition", + "description" : "Delete a test definition by `id`.", + "operationId" : "deleteTestDefinition", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the test definition", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Test definition for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Test Definitions" ], + "summary" : "Update a test definition", + "description" : "Update an existing Test Definition using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchTestDefinition", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test definition", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/dataQuality/testDefinitions/{id}/versions" : { + "get" : { + "tags" : [ "Test Definitions" ], + "summary" : "List test definition versions", + "description" : "Get a list of all the versions of a test definition identified by `Id`", + "operationId" : "listAllTestDefinitionVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test definition", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of test definition versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/dataQuality/testDefinitions/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Test Definitions" ], + "summary" : "Get a version of the test definition", + "description" : "Get a version of the test definition by given `Id`", + "operationId" : "getSpecificTestDefinitionVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test definition", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Test Definition version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "TestDefinition", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestDefinition" + } + } + } + }, + "404" : { + "description" : "Test Definition for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/dataQuality/testSuites" : { + "get" : { + "tags" : [ "Test Suites" ], + "summary" : "List test suites", + "description" : "Get a list of test suites. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listTestSuites", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tests,summary" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number test definitions returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "testSuiteType", + "in" : "query", + "description" : "Returns executable or logical test suites. If omitted, returns all test suites.", + "schema" : { + "type" : "string", + "example" : "executable" + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of test definitions before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of test definitions after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of test definitions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuiteList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Test Suites" ], + "summary" : "Update logical test suite", + "description" : "Create a logical TestSuite, if it does not exist or update an existing test suite.", + "operationId" : "createOrUpdateLogicalTestSuite", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTestSuite" } } } }, - "responses": { - "200": { - "description": "The dashboard", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dashboard" + "responses" : { + "200" : { + "description" : "The updated test definition ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" } } } - }, - "400": { - "description": "Bad request" } } }, - "post": { - "tags": ["Dashboards"], - "summary": "Create a dashboard", - "description": "Create a new dashboard.", - "operationId": "createDashboard", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDashboard" + "post" : { + "tags" : [ "Test Suites" ], + "summary" : "Create a logical test suite", + "description" : "Create a logical test suite.", + "operationId" : "createLogicalTestSuite", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTestSuite" } } } }, - "responses": { - "200": { - "description": "The dashboard", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dashboard" + "responses" : { + "200" : { + "description" : "The test suite", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } } }, - "/v1/dashboards/name/{fqn}": { - "get": { - "tags": ["Dashboards"], - "summary": "Get a dashboard by fully qualified name", - "description": "Get a dashboard by fully qualified name.", - "operationId": "getDashboardByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the dashboard", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,charts,followers,tags,usageSummary,extension,dataModels" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/dataQuality/testSuites/executable" : { + "put" : { + "tags" : [ "Test Suites" ], + "summary" : "Create or Update Executable test suite", + "description" : "Create an Executable TestSuite if it does not exist or update an existing one.", + "operationId" : "createOrUpdateExecutableTestSuite", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTestSuite" + } } } - ], - "responses": { - "200": { - "description": "The dashboard", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dashboard" + }, + "responses" : { + "200" : { + "description" : "The updated test definition ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" } } } - }, - "404": { - "description": "Dashboard for instance {fqn} is not found" } } }, - "delete": { - "tags": ["Dashboards"], - "summary": "Delete a dashboard by fully qualified name", - "description": "Delete a dashboard by `fullyQualifiedName`.", - "operationId": "deleteDashboardByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the dashboard", - "required": true, - "schema": { - "type": "string" + "post" : { + "tags" : [ "Test Suites" ], + "summary" : "Create an executable test suite", + "description" : "Create an executable test suite.", + "operationId" : "createExecutableTestSuite", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTestSuite" + } } } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Dashboard for instance {fqn} is not found" + }, + "responses" : { + "200" : { + "description" : "Executable test suite", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/dataQuality/testSuites/executable/name/{name}" : { + "delete" : { + "tags" : [ "Test Suites" ], + "summary" : "Delete a test suite", + "description" : "Delete a test suite by `name`.", + "operationId" : "deleteTestSuiteByName", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - } - } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the test suite", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Test suite for instance {name} is not found" + } + } + } + }, + "/v1/dataQuality/testSuites/executable/{id}" : { + "delete" : { + "tags" : [ "Test Suites" ], + "summary" : "Delete a test suite", + "description" : "Delete a test suite by `Id`.", + "operationId" : "deleteTestSuite", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the test suite", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Test suite for instance {id} is not found" + } + } + } + }, + "/v1/dataQuality/testSuites/executionSummary" : { + "get" : { + "tags" : [ "Test Suites" ], + "summary" : "Get the execution summary of test suites", + "description" : "Get the execution summary of test suites.", + "operationId" : "getExecutionSummaryOfTestSuites", + "parameters" : [ { + "name" : "testSuiteId", + "in" : "query", + "description" : "get summary for a specific test suite", + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "Tests Execution Summary", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSummary" + } + } + } + } + } + } + }, + "/v1/dataQuality/testSuites/name/{name}" : { + "get" : { + "tags" : [ "Test Suites" ], + "summary" : "Get a test suite by name", + "description" : "Get a test suite by name.", + "operationId" : "getTestSuiteByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the test suite", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tests,summary" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The test suite", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" + } + } + } + }, + "404" : { + "description" : "Test Suite for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Test Suites" ], + "summary" : "Delete a logical test suite", + "description" : "Delete a logical test suite by `name`.", + "operationId" : "deleteLogicalTestSuite", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the logical entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "FQN of the logical test suite", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Logical Test suite for instance {name} is not found" + } + } + } }, - "/v1/dashboards/restore": { - "put": { - "tags": ["Dashboards"], - "summary": "Restore a soft deleted dashboard", - "description": "Restore a soft deleted dashboard.", - "operationId": "restore_2", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/dataQuality/testSuites/restore" : { + "put" : { + "tags" : [ "Test Suites" ], + "summary" : "Restore a soft deleted test suite", + "description" : "Restore a soft deleted test suite.", + "operationId" : "restore_12", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Dashboard.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dashboard" - } - } + "responses" : { + "200" : { + "description" : "Successfully restored the TestSuite.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" + } + } + } + } + } + } + }, + "/v1/dataQuality/testSuites/{id}" : { + "get" : { + "tags" : [ "Test Suites" ], + "summary" : "Get a test suite by Id", + "description" : "Get a Test Suite by `Id`.", + "operationId" : "get_5", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test suite", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tests,summary" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The Test suite", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" + } + } + } + }, + "404" : { + "description" : "Test Suite for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Test Suites" ], + "summary" : "Delete a logical test suite", + "description" : "Delete a logical test suite by `id`.", + "operationId" : "deleteLogicalTestSuite_1", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the logical entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the logical test suite", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Logical test suite for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Test Suites" ], + "summary" : "Update a test suite", + "description" : "Update an existing testSuite using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchTestSuite", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test suite", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - } - } - }, - "/v1/dashboards/{id}": { - "get": { - "tags": ["Dashboards"], - "summary": "Get a dashboard by Id", - "description": "Get a dashboard by `Id`.", - "operationId": "getDashboardByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,charts,followers,tags,usageSummary,extension,dataModels" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/dataQuality/testSuites/{id}/versions" : { + "get" : { + "tags" : [ "Test Suites" ], + "summary" : "List test suite versions", + "description" : "Get a list of all the versions of a test suite identified by `id`", + "operationId" : "listAllTestSuiteVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test suite", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of test suite versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/dataQuality/testSuites/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Test Suites" ], + "summary" : "Get a version of the test suite", + "description" : "Get a version of the test suite by given `id`", + "operationId" : "getSpecificTestSuiteVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the test suite", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Test Suite version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "TestSuite", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestSuite" + } + } + } + }, + "404" : { + "description" : "Test Suite for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/databaseSchemas" : { + "get" : { + "tags" : [ "Database Schemas" ], + "summary" : "List database schemas", + "description" : "Get a list of database schemas, optionally filtered by `database` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listDBSchemas", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tables,usageSummary,tags,extension,domain" + } + }, { + "name" : "database", + "in" : "query", + "description" : "Filter schemas by database name", + "schema" : { + "type" : "string", + "example" : "customerDatabase" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number schemas returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of schemas before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of schemas after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of database schema", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchemaList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Database Schemas" ], + "summary" : "Create or update schema", + "description" : "Create a database schema, if it does not exist or update an existing database schema.", + "operationId" : "createOrUpdateDBSchema", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDatabaseSchema" + } } } - ], - "responses": { - "200": { - "description": "The dashboard", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dashboard" + }, + "responses" : { + "200" : { + "description" : "The updated schema ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" } } } - }, - "404": { - "description": "Dashboard for instance {id} is not found" } } }, - "delete": { - "tags": ["Dashboards"], - "summary": "Delete a dashboard by Id", - "description": "Delete a dashboard by `Id`.", - "operationId": "deleteDashboard", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the dashboard", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Dashboard for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Dashboards"], - "summary": "Update a dashboard", - "description": "Update an existing dashboard using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchDashboard", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "Database Schemas" ], + "summary" : "Create a schema", + "description" : "Create a schema under an existing `service`.", + "operationId" : "createDBSchema", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDatabaseSchema" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + "responses" : { + "200" : { + "description" : "The database schema", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/databaseSchemas/name/{fqn}" : { + "get" : { + "tags" : [ "Database Schemas" ], + "summary" : "Get a schema by fully qualified name", + "description" : "Get a database schema by fully qualified name.", + "operationId" : "getDBSchemaByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the database schema", + "required" : true, + "schema" : { + "type" : "string" } - } - } - }, - "/v1/dashboards/{id}/followers": { - "put": { - "tags": ["Dashboards"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as follower of this dashboard", - "operationId": "addFollowerToDashboard", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tables,usageSummary,tags,extension,domain" } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "uuid" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The schema", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" + } } } - } - }, - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "Dashboard for instance {id} is not found" + "404" : { + "description" : "Database schema for instance {fqn} is not found" } } - } - }, - "/v1/dashboards/{id}/followers/{userId}": { - "delete": { - "tags": ["Dashboards"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the dashboard.", - "operationId": "removeFollowerFromDashboard", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, + "delete" : { + "tags" : [ "Database Schemas" ], + "summary" : "Delete a schema by fully qualified name", + "description" : "Delete a schema by `fullyQualifiedName`. Schema can only be deleted if it has no tables.", + "operationId" : "deleteDBSchemaByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - } - } - }, - "/v1/dashboards/{id}/versions": { - "get": { - "tags": ["Dashboards"], - "summary": "List dashboard versions", - "description": "Get a list of all the versions of a dashboard identified by `Id`", - "operationId": "listAllDashboardVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Name of the DBSchema", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of dashboard versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } - } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Schema for instance {fqn} is not found" } } } }, - "/v1/dashboards/{id}/versions/{version}": { - "get": { - "tags": ["Dashboards"], - "summary": "Get a version of the dashboard", - "description": "Get a version of the dashboard by given `id`", - "operationId": "getSpecificDashboardVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/databaseSchemas/restore" : { + "put" : { + "tags" : [ "Database Schemas" ], + "summary" : "Restore a soft deleted database schema.", + "description" : "Restore a soft deleted database schema.", + "operationId" : "restore_6", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } - }, - { - "name": "version", - "in": "path", - "description": "Dashboard version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the DatabaseSchema ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" + } + } + } + } + } + } + }, + "/v1/databaseSchemas/{id}" : { + "get" : { + "tags" : [ "Database Schemas" ], + "summary" : "Get a schema by Id", + "description" : "Get a database schema by `Id`.", + "operationId" : "getDBSchemaByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Database schema Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tables,usageSummary,tags,extension,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The schema", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" + } + } + } + }, + "404" : { + "description" : "Schema for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Database Schemas" ], + "summary" : "Delete a schema by Id", + "description" : "Delete a schema by `Id`. Schema can only be deleted if it has no tables.", + "operationId" : "deleteDBSchema", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Database schema Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Schema for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Database Schemas" ], + "summary" : "Update a database schema", + "description" : "Update an existing database schema using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDBSchema", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Database schema Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "dashboard", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dashboard" - } - } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } - }, - "404": { - "description": "Dashboard for instance {id} and version {version} is not found" } } } }, - "/v1/dataQuality/testCases": { - "get": { - "tags": ["Test Cases"], - "summary": "List test cases", - "description": "Get a list of test. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.Use the `testSuite` field to get the executable Test Suite linked to this test case or use the `testSuites` field to list test suites (executable and logical) linked.", - "operationId": "listTestCases", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,testSuite,testDefinition,testSuites" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number tests returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of tests before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of tests after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "entityLink", - "in": "query", - "description": "Return list of tests by entity link", - "schema": { - "type": "string", - "example": "" - } - }, - { - "name": "testSuiteId", - "in": "query", - "description": "Returns list of tests filtered by the testSuite id", - "schema": { - "type": "string" - } - }, - { - "name": "includeAllTests", - "in": "query", - "description": "Include all the tests at the entity level", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/databaseSchemas/{id}/databaseSchemaProfilerConfig" : { + "get" : { + "tags" : [ "Database Schemas" ], + "summary" : "Get databaseSchema profile config", + "description" : "Get databaseSchema profile config to the table.", + "operationId" : "getDataProfilerConfig_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the databaseSchema", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of test definitions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCaseList" + } ], + "responses" : { + "200" : { + "description" : "Successfully updated the DatabaseSchema ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" } } } } } }, - "put": { - "tags": ["Test Cases"], - "summary": "Update test case", - "description": "Create a TestCase, it it does not exist or update an existing TestCase.", - "operationId": "createOrUpdateTest", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTestCase" + "put" : { + "tags" : [ "Database Schemas" ], + "summary" : "Add databaseSchema profile config", + "description" : "Add databaseSchema profile config to the table.", + "operationId" : "addDataProfilerConfig_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the databaseSchema", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchemaProfilerConfig" } } } }, - "responses": { - "200": { - "description": "The updated testCase.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCase" + "responses" : { + "200" : { + "description" : "Successfully updated the DatabaseSchema ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" } } } } } }, - "post": { - "tags": ["Test Cases"], - "summary": "Create a test case", - "description": "Create a test case", - "operationId": "createTestCase", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTestCase" - } - } + "delete" : { + "tags" : [ "Database Schemas" ], + "summary" : "Delete database profiler config", + "description" : "delete database profile config to the database.", + "operationId" : "delete DataProfilerConfig_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - }, - "responses": { - "200": { - "description": "The test", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCase" + } ], + "responses" : { + "200" : { + "description" : "Successfully deleted the Database profiler config", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" } } } - }, - "400": { - "description": "Bad request" } } } }, - "/v1/dataQuality/testCases/executionSummary": { - "get": { - "tags": ["Test Cases"], - "summary": "Get the execution summary of test cases", - "description": "Get the execution summary of test cases.", - "operationId": "getExecutionSummaryOfTestCases", - "parameters": [ - { - "name": "testSuiteId", - "in": "query", - "description": "get summary for a specific test suite", - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/databaseSchemas/{id}/versions" : { + "get" : { + "tags" : [ "Database Schemas" ], + "summary" : "List schema versions", + "description" : "Get a list of all the versions of a schema identified by `Id`", + "operationId" : "listAllDBSchemaVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Database schema Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "Tests Execution Summary", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSummary" + } ], + "responses" : { + "200" : { + "description" : "List of schema versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } @@ -3387,265 +7103,552 @@ } } }, - "/v1/dataQuality/testCases/logicalTestCases": { - "put": { - "tags": ["Test Cases"], - "summary": "Add test cases to a logical test suite", - "description": "Add test cases to a logical test suite.", - "operationId": "addTestCasesToLogicalTestSuite", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateLogicalTestCases" - } - } + "/v1/databaseSchemas/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Database Schemas" ], + "summary" : "Get a version of the schema", + "description" : "Get a version of the database schema by given `Id`", + "operationId" : "getSpecificDBSchemaVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Database schema Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - }, - "responses": { - "200": { - "description": "Successfully added test cases to the logical test suite.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + }, { + "name" : "version", + "in" : "path", + "description" : "Database schema version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "database schema", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" } } } + }, + "404" : { + "description" : "Database schema for instance {id} and version {version} is not found" } } } - }, - "/v1/dataQuality/testCases/logicalTestCases/{testSuiteId}/{id}": { - "delete": { - "tags": ["Test Cases"], - "summary": "Delete a logical test case by Id from a test suite", - "description": "Delete a logical test case by `Id` a test suite.", - "operationId": "deleteLogicalTestCase", - "parameters": [ - { - "name": "testSuiteId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "/v1/databaseSchemas/{id}/vote" : { + "put" : { + "tags" : [ "Database Schemas" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_3", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } } - }, - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + } + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/databases" : { + "get" : { + "tags" : [ "Databases" ], + "summary" : "List databases", + "description" : "Get a list of databases, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listDatabases", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,databaseSchemas,usageSummary,location,tags,extension,domain" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter databases by service name", + "schema" : { + "type" : "string", + "example" : "snowflakeWestCoast" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number tables returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of tables before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of tables after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of databases", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Databases" ], + "summary" : "Create or update database", + "description" : "Create a database, if it does not exist or update an existing database.", + "operationId" : "createOrUpdateDatabase", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDatabase" + } } } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Logical test case for instance {id} is not found" + }, + "responses" : { + "200" : { + "description" : "The updated database ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Database" + } + } + } } } - } - }, - "/v1/dataQuality/testCases/name/{fqn}": { - "get": { - "tags": ["Test Cases"], - "summary": "Get a test case by fully qualified name", - "description": "Get a test case by `fullyQualifiedName`.", - "operationId": "getTestCaseByName", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the test case", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,testSuite,testDefinition,testSuites" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + }, + "post" : { + "tags" : [ "Databases" ], + "summary" : "Create a database", + "description" : "Create a database under an existing `service`.", + "operationId" : "createDatabase", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDatabase" + } } } - ], - "responses": { - "200": { - "description": "The TestCase", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCase" + }, + "responses" : { + "200" : { + "description" : "The database", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Database" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/databases/name/{fqn}" : { + "get" : { + "tags" : [ "Databases" ], + "summary" : "Get a database by fully qualified name", + "description" : "Get a database by `fullyQualifiedName`.", + "operationId" : "getDatabaseByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the database", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,databaseSchemas,usageSummary,location,tags,extension,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The database", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Database" } } } }, - "404": { - "description": "Test for instance {fqn} is not found" + "404" : { + "description" : "Database for instance {fqn} is not found" } } }, - "delete": { - "tags": ["Test Cases"], - "summary": "Delete a test case by fully qualified name", - "description": "Delete a testCase by `fullyQualifiedName`.", - "operationId": "deleteTestCaseByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the test case", - "required": true, - "schema": { - "type": "string" - } + "delete" : { + "tags" : [ "Databases" ], + "summary" : "Delete a database by fully qualified name", + "description" : "Delete a database by `fullyQualifiedName`. Databases can only be deleted if it has no tables.", + "operationId" : "deleteDatabaseByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "200": { - "description": "OK" + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the database", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "TestCase for instance {fqn} is not found" + "404" : { + "description" : "Database for instance {fqn} is not found" } } } }, - "/v1/dataQuality/testCases/restore": { - "put": { - "tags": ["Test Cases"], - "summary": "Restore a soft deleted test case", - "description": "Restore a soft deleted test case.", - "operationId": "restore_7", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/databases/restore" : { + "put" : { + "tags" : [ "Databases" ], + "summary" : "Restore a soft deleted Database.", + "description" : "Restore a soft deleted Database.", + "operationId" : "restore_5", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Chart ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCase" - } - } + "responses" : { + "200" : { + "description" : "Successfully restored the Database. ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Database" + } + } + } + } + } + } + }, + "/v1/databases/{id}" : { + "get" : { + "tags" : [ "Databases" ], + "summary" : "Get a database by Id", + "description" : "Get a database by `Id`.", + "operationId" : "getDatabaseByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,databaseSchemas,usageSummary,location,tags,extension,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The database", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Database" + } + } + } + }, + "404" : { + "description" : "Database for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Databases" ], + "summary" : "Delete a database by Id", + "description" : "Delete a database by `Id`. Database can only be deleted if it has no tables.", + "operationId" : "deleteDatabase", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the database", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Database for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Databases" ], + "summary" : "Update a database", + "description" : "Update an existing database using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDatabase", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/dataQuality/testCases/{fqn}/testCaseResult": { - "get": { - "tags": ["Test Cases"], - "summary": "List of test case results", - "description": "Get a list of all the test case results for the given testCase id, optionally filtered by `startTs` and `endTs` of the profile. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listTestCaseResults", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the test case", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "startTs", - "in": "query", - "description": "Filter testCase results after the given start timestamp", - "schema": { - "type": "number" - } - }, - { - "name": "endTs", - "in": "query", - "description": "Filter testCase results before the given end timestamp", - "schema": { - "type": "number" - } + "/v1/databases/{id}/databaseProfilerConfig" : { + "get" : { + "tags" : [ "Databases" ], + "summary" : "Get database profile config", + "description" : "Get database profile config to the table.", + "operationId" : "getDataProfilerConfig", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of testCase results", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCaseResultList" + } ], + "responses" : { + "200" : { + "description" : "Successfully updated the Database ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } } } }, - "put": { - "tags": ["Test Cases"], - "summary": "Add test case result data", - "description": "Add test case result data to the testCase.", - "operationId": "addTestCaseResult", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the test case", - "required": true, - "schema": { - "type": "string" - } + "put" : { + "tags" : [ "Databases" ], + "summary" : "Add database profile config", + "description" : "Add database profile config to the table.", + "operationId" : "addDataProfilerConfig", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCaseResult" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseProfilerConfig" } } } }, - "responses": { - "200": { - "description": "Successfully updated the TestCase. ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCase" + "responses" : { + "200" : { + "description" : "Successfully updated the Database ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" + } + } + } + } + } + }, + "delete" : { + "tags" : [ "Databases" ], + "summary" : "Delete database profiler config", + "description" : "delete database profile config to the database.", + "operationId" : "delete DataProfilerConfig", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "Successfully deleted the Database profiler config", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } @@ -3653,2174 +7656,2283 @@ } } }, - "/v1/dataQuality/testCases/{fqn}/testCaseResult/{timestamp}": { - "delete": { - "tags": ["Test Cases"], - "summary": "Delete test case result", - "description": "Delete testCase result for a testCase.", - "operationId": "DeleteTestCaseResult", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the test case", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "timestamp", - "in": "path", - "description": "Timestamp of the testCase result", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "/v1/databases/{id}/versions" : { + "get" : { + "tags" : [ "Databases" ], + "summary" : "List database versions", + "description" : "Get a list of all the versions of a database identified by `Id`", + "operationId" : "listAllDatabaseVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "Successfully deleted the TestCaseResult", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCase" + } ], + "responses" : { + "200" : { + "description" : "List of database versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } } } - }, - "patch": { - "tags": ["Test Cases"], - "summary": "Update a test case result", - "description": "Update an existing test case using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchTestCaseResult", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "fqn of the test case", - "required": true, - "schema": { - "type": "string" + } + }, + "/v1/databases/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Databases" ], + "summary" : "Get a version of the database", + "description" : "Get a version of the database by given `Id`", + "operationId" : "getSpecificDatabaseVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Database version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "database", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Database" + } + } } }, - { - "name": "timestamp", - "in": "path", - "description": "Timestamp of the testCase result", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "404" : { + "description" : "Database for instance {id} and version {version} is not found" } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "/v1/databases/{id}/vote" : { + "put" : { + "tags" : [ "Databases" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } } + }, + "404" : { + "description" : "model for instance {id} is not found" } } } }, - "/v1/dataQuality/testCases/{id}": { - "get": { - "tags": ["Test Cases"], - "summary": "Get a test case by Id", - "description": "Get a TestCase by `Id`.", - "operationId": "get", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test case", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,testSuite,testDefinition,testSuites" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/docStore" : { + "get" : { + "tags" : [ "Document Store" ], + "summary" : "List Documents", + "description" : "Get a list of Documents. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listDocuments", + "parameters" : [ { + "name" : "limit", + "in" : "query", + "description" : "Limit the number of personas returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "entityType", + "in" : "query", + "description" : "Filter docs by entityType", + "schema" : { + "type" : "string", + "example" : "KnowledgePanel" } - ], - "responses": { - "200": { - "description": "The TestCases", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCase" + }, { + "name" : "fqnPrefix", + "in" : "query", + "description" : "Filter docs by fqnPrefix", + "schema" : { + "type" : "string", + "example" : "fqnPrefix" + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of personas before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of personas after this cursor", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of personas", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DocumentList" } } } - }, - "404": { - "description": "Test for instance {id} is not found" } } }, - "delete": { - "tags": ["Test Cases"], - "summary": "Delete a test case by Id", - "description": "Delete a test case by `Id`.", - "operationId": "deleteTestCase", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the test case", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "put" : { + "tags" : [ "Document Store" ], + "summary" : "Update Document", + "description" : "Create or Update a Document.", + "operationId" : "createOrUpdateDocument", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDocument" + } } } - ], - "responses": { - "200": { - "description": "OK" + }, + "responses" : { + "200" : { + "description" : "The Document.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Document" + } + } + } }, - "404": { - "description": "Test case for instance {id} is not found" + "400" : { + "description" : "Bad request" } } }, - "patch": { - "tags": ["Test Cases"], - "summary": "Update a test case", - "description": "Update an existing test using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchTest", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test case", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "Document Store" ], + "summary" : "Create a Document", + "description" : "Create a new Document.", + "operationId" : "createDocument", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDocument" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } - } - } - } + "responses" : { + "200" : { + "description" : "The Knowledge Panel.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Document" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } }, - "/v1/dataQuality/testCases/{id}/versions": { - "get": { - "tags": ["Test Cases"], - "summary": "List test case versions", - "description": "Get a list of all the versions of a testCases identified by `Id`", - "operationId": "listAllTestCaseVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test case", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/docStore/name/{name}" : { + "get" : { + "tags" : [ "Document Store" ], + "summary" : "Get a Document by name", + "description" : "Get a Document by `name`.", + "operationId" : "getDocumentByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the Document", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of test versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The Document", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Document" } } } + }, + "404" : { + "description" : "Document for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Document Store" ], + "summary" : "Delete a Document by name", + "description" : "Delete a Document by given `name`.", + "operationId" : "deleteDocumentByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the Document", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Knowledge Panel for instance {name} is not found" + } + } + } + }, + "/v1/docStore/{id}" : { + "get" : { + "tags" : [ "Document Store" ], + "summary" : "Get a Document by id", + "description" : "Get a Document by `id`.", + "operationId" : "get_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Document", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The Document", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Document" + } + } + } + }, + "404" : { + "description" : "Document for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Document Store" ], + "summary" : "Delete a Document by id", + "description" : "Delete a Document by given `id`.", + "operationId" : "deleteDocument", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Document", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Document for instance {id} is not found" } } - } - }, - "/v1/dataQuality/testCases/{id}/versions/{version}": { - "get": { - "tags": ["Test Cases"], - "summary": "Get a version of the test case", - "description": "Get a version of the test case by given `Id`", - "operationId": "getSpecificTestCaseVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test case", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Test version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + }, + "patch" : { + "tags" : [ "Document Store" ], + "summary" : "Update a Document.", + "description" : "Update an existing Document with JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDocument", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Document", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "Test", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCase" - } - } - } - }, - "404": { - "description": "Test for instance {id} and version {version} is not found" - } - } - } - }, - "/v1/dataQuality/testDefinitions": { - "get": { - "tags": ["Test Definitions"], - "summary": "List test definitions", - "description": "Get a list of test definitions, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listTestDefinitions", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number test definitions returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of test definitions before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of test definitions after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - }, - { - "name": "entityType", - "in": "query", - "description": "Filter by entityType.", - "schema": { - "type": "string", - "enum": ["TABLE", "COLUMN"] - } - }, - { - "name": "testPlatform", - "in": "query", - "description": "Filter by a test platform", - "schema": { - "type": "string", - "enum": [ - "OpenMetadata", - "GreatExpectations", - "DBT", - "Deequ", - "Soda", - "Other" - ] - } - }, - { - "name": "supportedDataType", - "in": "query", - "description": "Filter tests definition by supported data type", - "schema": { - "type": "string", - "enum": [ - "NUMBER", - "TINYINT", - "SMALLINT", - "INT", - "BIGINT", - "BYTEINT", - "BYTES", - "FLOAT", - "DOUBLE", - "DECIMAL", - "NUMERIC", - "TIMESTAMP", - "TIMESTAMPZ", - "TIME", - "DATE", - "DATETIME", - "INTERVAL", - "STRING", - "MEDIUMTEXT", - "TEXT", - "CHAR", - "LONG", - "VARCHAR", - "BOOLEAN", - "BINARY", - "VARBINARY", - "ARRAY", - "BLOB", - "LONGBLOB", - "MEDIUMBLOB", - "MAP", - "STRUCT", - "UNION", - "SET", - "GEOGRAPHY", - "ENUM", - "JSON", - "UUID", - "VARIANT", - "GEOMETRY", - "BYTEA", - "AGGREGATEFUNCTION", - "ERROR", - "FIXED", - "RECORD", - "NULL", - "SUPER", - "HLLSKETCH", - "PG_LSN", - "PG_SNAPSHOT", - "TSQUERY", - "TXID_SNAPSHOT", - "XML", - "MACADDR", - "TSVECTOR", - "UNKNOWN", - "CIDR", - "INET", - "CLOB", - "ROWID", - "LOWCARDINALITY", - "YEAR", - "POINT", - "POLYGON", - "TUPLE", - "SPATIAL", - "TABLE" - ] - } - } - ], - "responses": { - "200": { - "description": "List of test definitions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestDefinitionList" - } - } - } - } - } - }, - "put": { - "tags": ["Test Definitions"], - "summary": "Update test definition", - "description": "Create a test definition, if it does not exist, or update an existing test definition.", - "operationId": "createOrUpdateTestDefinition", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTestDefinition" - } - } - } - }, - "responses": { - "200": { - "description": "The updated test definition ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestDefinition" - } - } - } - } - } - }, - "post": { - "tags": ["Test Definitions"], - "summary": "Create a test definition", - "description": "Create a Test definition.", - "operationId": "createTestDefinition", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTestDefinition" - } - } - } - }, - "responses": { - "200": { - "description": "The test definition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestDefinition" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/docStore/{id}/versions" : { + "get" : { + "tags" : [ "Document Store" ], + "summary" : "List Document versions", + "description" : "Get a list of all the versions of a Document identified by `id`", + "operationId" : "listAllDocumentVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Document", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of persona versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/docStore/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Document Store" ], + "summary" : "Get a version of the Document", + "description" : "Get a version of the Document by given `id`", + "operationId" : "getSpecificDocumentVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Document", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Document version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "KnowledgePanel", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Document" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "Document for instance {id} and version {version} is not found" } } } }, - "/v1/dataQuality/testDefinitions/name/{name}": { - "get": { - "tags": ["Test Definitions"], - "summary": "Get a test definition by name", - "description": "Get a test definition by `name`.", - "operationId": "getTestDefinitionByName", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the test definition", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/domains" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "List domains", + "description" : "Get a list of Domains.", + "operationId" : "listDomains", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,owner,experts" } - ], - "responses": { - "200": { - "description": "The test definition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestDefinition" + }, { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of Domain before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of Domain after this cursor", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of Domains", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DomainList" } } } - }, - "404": { - "description": "Test Definition for instance {name} is not found" } } }, - "delete": { - "tags": ["Test Definitions"], - "summary": "Delete a test definition", - "description": "Delete a test definition by `name`.", - "operationId": "deleteTestDefinitionByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the test definition", - "required": true, - "schema": { - "type": "string" + "put" : { + "tags" : [ "Domains" ], + "summary" : "Create or update a domain", + "description" : "Create a domain. if it does not exist. If a domain already exists, update the domain.", + "operationId" : "createOrUpdateDomain", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDomain" + } } } - ], - "responses": { - "200": { - "description": "OK" + }, + "responses" : { + "200" : { + "description" : "The domain", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Domain" + } + } + } }, - "404": { - "description": "Test definition for instance {name} is not found" + "400" : { + "description" : "Bad request" } } - } - }, - "/v1/dataQuality/testDefinitions/restore": { - "put": { - "tags": ["Test Definitions"], - "summary": "Restore a soft deleted test definition", - "description": "Restore a soft deleted TestDefinition.", - "operationId": "restore_8", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + }, + "post" : { + "tags" : [ "Domains" ], + "summary" : "Create a domain", + "description" : "Create a new domain.", + "operationId" : "createDomain", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDomain" } } } }, - "responses": { - "200": { - "description": "Successfully restored the TestDefinition. ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestDefinition" - } - } - } + "responses" : { + "200" : { + "description" : "The domain ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Domain" + } + } + } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/dataQuality/testDefinitions/{id}": { - "get": { - "tags": ["Test Definitions"], - "summary": "Get a test definition by Id", - "description": "Get a Test Definition by `Id`.", - "operationId": "get_1", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test definition", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/domains/name/{name}" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "Get a domain by name", + "description" : "Get a domain by `name`.", + "operationId" : "getDomainByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the domain", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "The Test definition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestDefinition" + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,owner,experts" + } + } ], + "responses" : { + "200" : { + "description" : "domain", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Domain" } } } }, - "404": { - "description": "Test Definition for instance {id} is not found" + "404" : { + "description" : "Domain for instance {name} is not found" } } }, - "delete": { - "tags": ["Test Definitions"], - "summary": "Delete a test definition", - "description": "Delete a test definition by `id`.", - "operationId": "deleteTestDefinition", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the test definition", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "delete" : { + "tags" : [ "Domains" ], + "summary" : "Delete a domain by name", + "description" : "Delete a domain by `name`.", + "operationId" : "deleteDomainByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the domain", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Test definition for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Test Definitions"], - "summary": "Update a test definition", - "description": "Update an existing Test Definition using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchTestDefinition", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test definition", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + "404" : { + "description" : "Domain for instance {name} is not found" } } } }, - "/v1/dataQuality/testDefinitions/{id}/versions": { - "get": { - "tags": ["Test Definitions"], - "summary": "List test definition versions", - "description": "Get a list of all the versions of a test definition identified by `Id`", - "operationId": "listAllTestDefinitionVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test definition", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "List of test definition versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } - } + "/v1/domains/{id}" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "Get a domain by Id", + "description" : "Get a domain by `Id`.", + "operationId" : "getDomainByID", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,owner,experts" } - } - } - }, - "/v1/dataQuality/testDefinitions/{id}/versions/{version}": { - "get": { - "tags": ["Test Definitions"], - "summary": "Get a version of the test definition", - "description": "Get a version of the test definition by given `Id`", - "operationId": "getSpecificTestDefinitionVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test definition", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Test Definition version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the domain", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "TestDefinition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestDefinition" - } - } - } + } ], + "responses" : { + "200" : { + "description" : "The domain", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Domain" + } + } + } + }, + "404" : { + "description" : "Domain for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Domains" ], + "summary" : "Delete a domain by Id", + "description" : "Delete a domain by `Id`.", + "operationId" : "deleteDomain", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the domain", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Test Definition for instance {id} and version {version} is not found" + "404" : { + "description" : "Domain for instance {id} is not found" } } - } - }, - "/v1/dataQuality/testSuites": { - "get": { - "tags": ["Test Suites"], - "summary": "List test suites", - "description": "Get a list of test suites. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listTestSuites", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tests,summary" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number test definitions returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "testSuiteType", - "in": "query", - "description": "Returns executable or logical test suites. If omitted, returns all test suites.", - "schema": { - "type": "string", - "example": "executable" - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of test definitions before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of test definitions after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "List of test definitions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuiteList" - } - } + }, + "patch" : { + "tags" : [ "Domains" ], + "summary" : "Update a domain", + "description" : "Update an existing domain using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDomain", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the domain", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - } - }, - "put": { - "tags": ["Test Suites"], - "summary": "Update logical test suite", - "description": "Create a logical TestSuite, if it does not exist or update an existing test suite.", - "operationId": "createOrUpdateLogicalTestSuite", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTestSuite" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/domains/{id}/versions" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "List domain versions", + "description" : "Get a list of all the versions of a domain identified by `Id`", + "operationId" : "listAllDomainVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the domain", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of domain versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/domains/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Domains" ], + "summary" : "Get a version of the domain", + "description" : "Get a version of the domain by given `Id`", + "operationId" : "listSpecificDomainVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the domain", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Domain version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "domain", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Domain" + } + } + } + }, + "404" : { + "description" : "Domain for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/events" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Get change events", + "description" : "Get a list of change events matching event types, entity type, from a given date", + "operationId" : "listChangeEvents", + "parameters" : [ { + "name" : "entityCreated", + "in" : "query", + "description" : "List of comma separated entities requested for `entityCreated` event. When set to `*` all entities will be returned", + "schema" : { + "type" : "string", + "example" : "table,dashboard,..." + } + }, { + "name" : "entityUpdated", + "in" : "query", + "description" : "List of comma separated entities requested for `entityUpdated` event. When set to `*` all entities will be returned", + "schema" : { + "type" : "string", + "example" : "table,dashboard,..." + } + }, { + "name" : "entityRestored", + "in" : "query", + "description" : "List of comma separated entities requested for `entityRestored` event. When set to `*` all entities will be returned", + "schema" : { + "type" : "string", + "example" : "table,dashboard,..." + } + }, { + "name" : "entityDeleted", + "in" : "query", + "description" : "List of comma separated entities requested for `entityCreated` event. When set to `*` all entities will be returned", + "schema" : { + "type" : "string", + "example" : "table,dashboard,..." + } + }, { + "name" : "timestamp", + "in" : "query", + "description" : "Events starting from this unix timestamp in milliseconds", + "required" : true, + "schema" : { + "type" : "integer", + "format" : "int64", + "example" : 1426349294842 + } + } ], + "responses" : { + "200" : { + "description" : "Entity events", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EventList" + } + } + } + }, + "404" : { + "description" : "Entity for instance {id} is not found" + } + } + } + }, + "/v1/events/subscriptions" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "List all available Event Subscriptions", + "description" : "Get a list of All available Event Subscriptions", + "operationId" : "listEventSubscriptions", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,filteringRules" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number event subscriptions returned. (1 to 1000000, default = 10) ", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of event subscriptions before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of event subscriptions after this cursor", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of Event Subscriptions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EventSubscriptionList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Events" ], + "summary" : "Updated an existing or create a new Event Subscription", + "description" : "Updated an existing or create a new Event Subscription", + "operationId" : "createOrUpdateEventSubscription", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateEventSubscription" } } } }, - "responses": { - "200": { - "description": "The updated test definition ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + "responses" : { + "200" : { + "description" : "create Event Subscription", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateEventSubscription" } } } + }, + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Test Suites"], - "summary": "Create a logical test suite", - "description": "Create a logical test suite.", - "operationId": "createLogicalTestSuite", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTestSuite" + "post" : { + "tags" : [ "Events" ], + "summary" : "Create a new Event Subscription", + "description" : "Create a new Event Subscription", + "operationId" : "createEventSubscription", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateEventSubscription" } } } }, - "responses": { - "200": { - "description": "The test suite", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + "responses" : { + "200" : { + "description" : "Event Subscription Created", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateEventSubscription" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } } }, - "/v1/dataQuality/testSuites/executable": { - "put": { - "tags": ["Test Suites"], - "summary": "Create or Update Executable test suite", - "description": "Create an Executable TestSuite if it does not exist or update an existing one.", - "operationId": "createOrUpdateExecutableTestSuite", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTestSuite" - } - } - } - }, - "responses": { - "200": { - "description": "The updated test definition ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + "/v1/events/subscriptions/functions" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Get list of Event Subscription functions used in filtering EventSubscription", + "description" : "Get list of Event Subscription functions used in filtering conditions in Event Subscriptions", + "operationId" : "listEventSubscriptionFunctions", + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Function" + } } } } } } - }, - "post": { - "tags": ["Test Suites"], - "summary": "Create an executable test suite", - "description": "Create an executable test suite.", - "operationId": "createExecutableTestSuite", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTestSuite" - } - } + } + }, + "/v1/events/subscriptions/name/{eventSubscriptionName}" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Get an Event Subscription by name", + "description" : "Get an Event Subscription by name.", + "operationId" : "getEventSubscriptionByName", + "parameters" : [ { + "name" : "eventSubscriptionName", + "in" : "path", + "description" : "Name of the Event Subscription", + "required" : true, + "schema" : { + "type" : "string" } - }, - "responses": { - "200": { - "description": "Executable test suite", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,filteringRules" + } + } ], + "responses" : { + "200" : { + "description" : "Event Subscription with request name is returned", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EventSubscription" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "Event Subscription for instance {eventSubscriptionName} is not found" } } } }, - "/v1/dataQuality/testSuites/executable/name/{name}": { - "delete": { - "tags": ["Test Suites"], - "summary": "Delete a test suite", - "description": "Delete a test suite by `name`.", - "operationId": "deleteTestSuiteByName", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the test suite", - "required": true, - "schema": { - "type": "string" - } + "/v1/events/subscriptions/name/{eventSubscriptionName}/status" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Get Event Subscription status", + "description" : "Get a event Subscription status by given Name", + "operationId" : "getEventSubscriptionStatus", + "parameters" : [ { + "name" : "eventSubscriptionName", + "in" : "path", + "description" : "Name of the Event Subscription", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "200" : { + "description" : "Return the current status of the Event Subscription", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionStatus" + } + } + } }, - "404": { - "description": "Test suite for instance {name} is not found" + "404" : { + "description" : "Entity for instance {id} is not found" } } } }, - "/v1/dataQuality/testSuites/executable/{id}": { - "delete": { - "tags": ["Test Suites"], - "summary": "Delete a test suite", - "description": "Delete a test suite by `Id`.", - "operationId": "deleteTestSuite", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the test suite", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/events/subscriptions/name/{name}" : { + "delete" : { + "tags" : [ "Events" ], + "summary" : "Delete an Event Subscription by name", + "description" : "Delete an Event Subscription by given `name`.", + "operationId" : "deleteEventSubscriptionByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the Event Subscription", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Test suite for instance {id} is not found" + "404" : { + "description" : "Entity for instance {name} is not found" } } } }, - "/v1/dataQuality/testSuites/name/{name}": { - "get": { - "tags": ["Test Suites"], - "summary": "Get a test suite by name", - "description": "Get a test suite by name.", - "operationId": "getTestSuiteByName", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the test suite", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tests,summary" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The test suite", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + "/v1/events/subscriptions/resources" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Get list of Event Subscriptions Resources used in filtering Event Subscription", + "description" : "Get list of EventSubscription functions used in filtering conditions in Event Subscription", + "operationId" : "listEventSubscriptionResources", + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResultListSubscriptionResourceDescriptor" } } } - }, - "404": { - "description": "Test Suite for instance {name} is not found" } } - }, - "delete": { - "tags": ["Test Suites"], - "summary": "Delete a logical test suite", - "description": "Delete a logical test suite by `name`.", - "operationId": "deleteLogicalTestSuite", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the logical entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } + } + }, + "/v1/events/subscriptions/trigger/{id}" : { + "put" : { + "tags" : [ "Events" ], + "summary" : "Trigger a existing Data Insight Report Job to run", + "description" : "Trigger a existing Data Insight Report Job to run", + "operationId" : "triggerDataInsightJob", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the event Subscription", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "Trigger a Data Insight Job" }, - { - "name": "name", - "in": "path", - "description": "FQN of the logical test suite", - "required": true, - "schema": { - "type": "string" - } + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/events/subscriptions/validation/condition/{expression}" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Validate a given condition", + "description" : "Validate a given condition expression used in filtering rules.", + "operationId" : "validateCondition", + "parameters" : [ { + "name" : "expression", + "in" : "path", + "description" : "Expression to validate", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "204" : { + "description" : "No value is returned" }, - "404": { - "description": "Logical Test suite for instance {name} is not found" + "400" : { + "description" : "Invalid expression" } } } }, - "/v1/dataQuality/testSuites/restore": { - "put": { - "tags": ["Test Suites"], - "summary": "Restore a soft deleted test suite", - "description": "Restore a soft deleted test suite.", - "operationId": "restore_9", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } + "/v1/events/subscriptions/{eventSubscriptionId}/status" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Get Event Subscription status by Id", + "description" : "Get a event Subscription status by given Name", + "operationId" : "getEventSubscriptionStatusById", + "parameters" : [ { + "name" : "eventSubscriptionId", + "in" : "path", + "description" : "Name of the Event Subscription", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - }, - "responses": { - "200": { - "description": "Successfully restored the TestSuite.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + } ], + "responses" : { + "200" : { + "description" : "Return the current status of the Event Subscription", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SubscriptionStatus" } } } + }, + "404" : { + "description" : "Entity for instance {id} is not found" } } } }, - "/v1/dataQuality/testSuites/{id}": { - "get": { - "tags": ["Test Suites"], - "summary": "Get a test suite by Id", - "description": "Get a Test Suite by `Id`.", - "operationId": "get_2", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test suite", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tests,summary" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The Test suite", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + "/v1/events/subscriptions/{id}" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Get a event Subscription by ID", + "description" : "Get a event Subscription by given Id", + "operationId" : "getEventSubscriptionByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Event Subscription", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,filteringRules" + } + } ], + "responses" : { + "200" : { + "description" : "Entity events", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EventSubscription" } } } }, - "404": { - "description": "Test Suite for instance {id} is not found" + "404" : { + "description" : "Entity for instance {id} is not found" } } }, - "delete": { - "tags": ["Test Suites"], - "summary": "Delete a logical test suite", - "description": "Delete a logical test suite by `id`.", - "operationId": "deleteLogicalTestSuite_1", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the logical entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the logical test suite", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "delete" : { + "tags" : [ "Events" ], + "summary" : "Delete an Event Subscription by Id", + "description" : "Delete an Event Subscription", + "operationId" : "deleteEventSubscription", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Event Subscription", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "200" : { + "description" : "Entity events", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EventSubscription" + } + } + } }, - "404": { - "description": "Logical test suite for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Test Suites"], - "summary": "Update a test suite", - "description": "Update an existing testSuite using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchTestSuite", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test suite", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + "404" : { + "description" : "Entity for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Events" ], + "summary" : "Update an Event Subscriptions", + "description" : "Update an existing Event Subscriptions using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchEventSubscription", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the event Subscription", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } - } - } - } - }, - "/v1/dataQuality/testSuites/{id}/versions": { - "get": { - "tags": ["Test Suites"], - "summary": "List test suite versions", - "description": "Get a list of all the versions of a test suite identified by `id`", - "operationId": "listAllTestSuiteVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test suite", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "List of test suite versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/events/subscriptions/{id}/versions" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "List Event Subscription versions", + "description" : "Get a list of all the versions of an Event Subscription identified by `Id`", + "operationId" : "listAllEventSubscriptionVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Event Subscription", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of Event Subscription versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/events/subscriptions/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Events" ], + "summary" : "Get a version of the Event Subscription", + "description" : "Get a version of the Event Subscription by given `Id`", + "operationId" : "getSpecificEventSubscriptionVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Event Subscription", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Event Subscription version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "Get specific version of Event Subscription", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EventSubscription" + } + } + } + }, + "404" : { + "description" : "Event Subscription for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/feed" : { + "get" : { + "tags" : [ "Feeds" ], + "summary" : "List threads", + "description" : "Get a list of threads, optionally filtered by `entityLink`.", + "operationId" : "listThreads", + "parameters" : [ { + "name" : "limitPosts", + "in" : "query", + "description" : "Limit the number of posts sorted by chronological order (1 to 1000000, default = 3)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int64", + "default" : 3 + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number of threads returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 1, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of threads before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of threads after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "entityLink", + "in" : "query", + "description" : "Filter threads by entity link of entity about which this thread is created", + "schema" : { + "type" : "string", + "example" : "" + } + }, { + "name" : "userId", + "in" : "query", + "description" : "Filter threads by user id. This filter requires a 'filterType' query param. The default filter type is 'OWNER'. This filter cannot be combined with the entityLink filter.", + "schema" : { + "type" : "string" + } + }, { + "name" : "filterType", + "in" : "query", + "description" : "Filter type definition for the user filter. It can take one of 'OWNER', 'FOLLOWS', 'MENTIONS'. This must be used with the 'user' query param", + "schema" : { + "type" : "string", + "enum" : [ "OWNER", "MENTIONS", "FOLLOWS", "ASSIGNED_TO", "ASSIGNED_BY", "OWNER_OR_FOLLOWS" ] + } + }, { + "name" : "resolved", + "in" : "query", + "description" : "Filter threads by whether they are resolved or not. By default resolved is false", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "type", + "in" : "query", + "description" : "The type of thread to filter the results. It can take one of 'Conversation', 'Task', 'Announcement'", + "schema" : { + "type" : "string", + "enum" : [ "Conversation", "Task", "Announcement" ] + } + }, { + "name" : "taskStatus", + "in" : "query", + "description" : "The status of tasks to filter the results. It can take one of 'Open', 'Closed'. This filter will take effect only when type is set to Task", + "schema" : { + "type" : "string", + "enum" : [ "Open", "Closed" ] + } + }, { + "name" : "activeAnnouncement", + "in" : "query", + "description" : "Whether to filter results by announcements that are currently active. This filter will take effect only when type is set to Announcement", + "schema" : { + "type" : "boolean" + } + } ], + "responses" : { + "200" : { + "description" : "List of threads", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ThreadList" + } + } + } + } + } + }, + "post" : { + "tags" : [ "Feeds" ], + "summary" : "Create a thread", + "description" : "Create a new thread. A thread is created about a data asset when a user posts the first post.", + "operationId" : "createThread", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateThread" } } } - } - } - }, - "/v1/dataQuality/testSuites/{id}/versions/{version}": { - "get": { - "tags": ["Test Suites"], - "summary": "Get a version of the test suite", - "description": "Get a version of the test suite by given `id`", - "operationId": "getSpecificTestSuiteVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the test suite", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Test Suite version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "TestSuite", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestSuite" + }, + "responses" : { + "200" : { + "description" : "The thread", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Thread" } } } }, - "404": { - "description": "Test Suite for instance {id} and version {version} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/databaseSchemas": { - "get": { - "tags": ["Database Schemas"], - "summary": "List database schemas", - "description": "Get a list of database schemas, optionally filtered by `database` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listDBSchemas", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tables,usageSummary,tags,extension" - } - }, - { - "name": "database", - "in": "query", - "description": "Filter schemas by database name", - "schema": { - "type": "string", - "example": "customerDatabase" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number schemas returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of schemas before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of schemas after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/feed/count" : { + "get" : { + "tags" : [ "Feeds" ], + "summary" : "Count of threads", + "description" : "Get a count of threads, optionally filtered by `entityLink` for each of the entities.", + "operationId" : "countThreads", + "parameters" : [ { + "name" : "entityLink", + "in" : "query", + "description" : "Filter threads by entity link", + "schema" : { + "type" : "string", + "example" : "" } - ], - "responses": { - "200": { - "description": "List of database schema", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseSchemaList" - } - } - } + }, { + "name" : "type", + "in" : "query", + "description" : "The type of thread to filter the results. It can take one of 'Conversation', 'Task', 'Announcement'", + "schema" : { + "type" : "string", + "enum" : [ "Conversation", "Task", "Announcement" ] } - } - }, - "put": { - "tags": ["Database Schemas"], - "summary": "Create or update schema", - "description": "Create a database schema, if it does not exist or update an existing database schema.", - "operationId": "createOrUpdateDBSchema", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDatabaseSchema" - } - } + }, { + "name" : "taskStatus", + "in" : "query", + "description" : "The status of tasks to filter the results. It can take one of 'Open', 'Closed'. This filter will take effect only when type is set to Task", + "schema" : { + "type" : "string", + "enum" : [ "Open", "Closed" ] } - }, - "responses": { - "200": { - "description": "The updated schema ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseSchema" + }, { + "name" : "isResolved", + "in" : "query", + "description" : "Filter threads by whether it is active or resolved", + "schema" : { + "type" : "boolean", + "default" : false + } + } ], + "responses" : { + "200" : { + "description" : "Count of threads", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ThreadCount" } } } } } - }, - "post": { - "tags": ["Database Schemas"], - "summary": "Create a schema", - "description": "Create a schema under an existing `service`.", - "operationId": "createDBSchema", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDatabaseSchema" - } - } + } + }, + "/v1/feed/tasks/{id}" : { + "get" : { + "tags" : [ "Feeds" ], + "summary" : "Get a task thread by task Id", + "description" : "Get a task thread by `task Id`.", + "operationId" : "getTaskByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the task thread", + "required" : true, + "schema" : { + "type" : "string" } - }, - "responses": { - "200": { - "description": "The database schema", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseSchema" + } ], + "responses" : { + "200" : { + "description" : "The task thread", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Thread" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "Task for instance {id} is not found" } } } }, - "/v1/databaseSchemas/name/{fqn}": { - "get": { - "tags": ["Database Schemas"], - "summary": "Get a schema by fully qualified name", - "description": "Get a database schema by fully qualified name.", - "operationId": "getDBSchemaByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the database schema", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tables,usageSummary,tags,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/feed/tasks/{id}/close" : { + "put" : { + "tags" : [ "Feeds" ], + "summary" : "Close a task", + "description" : "Close a task without making any changes to the entity.", + "operationId" : "closeTask", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the task thread", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CloseTask" + } } } - ], - "responses": { - "200": { - "description": "The schema", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseSchema" + }, + "responses" : { + "200" : { + "description" : "The task thread.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Thread" } } } }, - "404": { - "description": "Database schema for instance {fqn} is not found" - } - } - }, - "delete": { - "tags": ["Database Schemas"], - "summary": "Delete a schema by fully qualified name", - "description": "Delete a schema by `fullyQualifiedName`. Schema can only be deleted if it has no tables.", - "operationId": "deleteDBSchemaByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Name of the DBSchema", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Schema for instance {fqn} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/databaseSchemas/restore": { - "put": { - "tags": ["Database Schemas"], - "summary": "Restore a soft deleted database schema.", - "description": "Restore a soft deleted database schema.", - "operationId": "restore_4", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/feed/tasks/{id}/resolve" : { + "put" : { + "tags" : [ "Feeds" ], + "summary" : "Resolve a task", + "description" : "Resolve a task.", + "operationId" : "resolveTask", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the task thread", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResolveTask" } } } }, - "responses": { - "200": { - "description": "Successfully restored the DatabaseSchema ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseSchema" + "responses" : { + "200" : { + "description" : "The task thread", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Thread" } } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/databaseSchemas/{id}": { - "get": { - "tags": ["Database Schemas"], - "summary": "Get a schema by Id", - "description": "Get a database schema by `Id`.", - "operationId": "getDBSchemaByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Database schema Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tables,usageSummary,tags,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/feed/{id}" : { + "get" : { + "tags" : [ "Feeds" ], + "summary" : "Get a thread by Id", + "description" : "Get a thread by `Id`.", + "operationId" : "getThreadByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Thread", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "The schema", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseSchema" + }, { + "name" : "entityType", + "in" : "path", + "description" : "Type of the Entity", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "The thread", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Thread" } } } }, - "404": { - "description": "Schema for instance {id} is not found" + "404" : { + "description" : "Thread for instance {id} is not found" } } }, - "delete": { - "tags": ["Database Schemas"], - "summary": "Delete a schema by Id", - "description": "Delete a schema by `Id`. Schema can only be deleted if it has no tables.", - "operationId": "deleteDBSchema", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Database schema Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Schema for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Database Schemas"], - "summary": "Update a database schema", - "description": "Update an existing database schema using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchDBSchema", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Database schema Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + "patch" : { + "tags" : [ "Feeds" ], + "summary" : "Update a thread by `Id`.", + "description" : "Update an existing thread using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchThread", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the thread", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/databaseSchemas/{id}/versions": { - "get": { - "tags": ["Database Schemas"], - "summary": "List schema versions", - "description": "Get a list of all the versions of a schema identified by `Id`", - "operationId": "listAllDBSchemaVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Database schema Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/feed/{id}/posts" : { + "get" : { + "tags" : [ "Feeds" ], + "summary" : "Get all the posts of a thread", + "description" : "Get all the posts of an existing thread.", + "operationId" : "getAllPostOfThread", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the thread", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of schema versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + } ], + "responses" : { + "200" : { + "description" : "The posts of the given thread.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PostList" } } } } } - } - }, - "/v1/databaseSchemas/{id}/versions/{version}": { - "get": { - "tags": ["Database Schemas"], - "summary": "Get a version of the schema", - "description": "Get a version of the database schema by given `Id`", - "operationId": "getSpecificDBSchemaVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Database schema Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Database schema version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + }, + "post" : { + "tags" : [ "Feeds" ], + "summary" : "Add post to a thread", + "description" : "Add a post to an existing thread.", + "operationId" : "addPostToThread", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the thread", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePost" + } } } - ], - "responses": { - "200": { - "description": "database schema", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseSchema" + }, + "responses" : { + "200" : { + "description" : "The post", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Thread" } } } }, - "404": { - "description": "Database schema for instance {id} and version {version} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/databases": { - "get": { - "tags": ["Databases"], - "summary": "List databases", - "description": "Get a list of databases, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listDatabases", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,databaseSchemas,usageSummary,location,tags,extension" - } - }, - { - "name": "service", - "in": "query", - "description": "Filter databases by service name", - "schema": { - "type": "string", - "example": "snowflakeWestCoast" - } + "/v1/feed/{threadId}" : { + "delete" : { + "tags" : [ "Feeds" ], + "summary" : "Delete a thread by Id", + "description" : "Delete an existing thread and all its relationships.", + "operationId" : "deleteThread", + "parameters" : [ { + "name" : "threadId", + "in" : "path", + "description" : "ThreadId of the thread to be deleted", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - { - "name": "limit", - "in": "query", - "description": "Limit the number tables returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } + "404" : { + "description" : "thread with {threadId} is not found" }, - { - "name": "before", - "in": "query", - "description": "Returns list of tables before this cursor", - "schema": { - "type": "string" - } + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/feed/{threadId}/posts/{postId}" : { + "delete" : { + "tags" : [ "Feeds" ], + "summary" : "Delete a post from its thread", + "description" : "Delete a post from an existing thread.", + "operationId" : "deletePostFromThread", + "parameters" : [ { + "name" : "threadId", + "in" : "path", + "description" : "ThreadId of the post to be deleted", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "postId", + "in" : "path", + "description" : "PostId of the post to be deleted", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - { - "name": "after", - "in": "query", - "description": "Returns list of tables after this cursor", - "schema": { - "type": "string" - } + "404" : { + "description" : "post with {postId} is not found" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "List of databases", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseList" - } - } - } + "400" : { + "description" : "Bad request" } } }, - "put": { - "tags": ["Databases"], - "summary": "Create or update database", - "description": "Create a database, if it does not exist or update an existing database.", - "operationId": "createOrUpdateDatabase", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDatabase" + "patch" : { + "tags" : [ "Feeds" ], + "summary" : "Update post of a thread by `Id`.", + "description" : "Update a post of an existing thread using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchPostOfThread", + "parameters" : [ { + "name" : "threadId", + "in" : "path", + "description" : "Id of the thread", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "postId", + "in" : "path", + "description" : "Id of the post", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "400" : { + "description" : "Bad request" + }, + "404" : { + "description" : "post with {postId} is not found" + } + } + } + }, + "/v1/glossaries" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "List glossaries", + "description" : "Get a list of glossaries. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listGlossaries", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,reviewers,usageCount,termCount,domain,extension" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number glossaries returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of glossaries before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of glossaries after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of glossaries", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/GlossaryList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Glossaries" ], + "summary" : "Create or update a glossary", + "description" : "Create a new glossary, if it does not exist or update an existing glossary.", + "operationId" : "createOrUpdateGlossary", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateGlossary" } } } }, - "responses": { - "200": { - "description": "The updated database ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Database" + "responses" : { + "200" : { + "description" : "The glossary", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" } } } + }, + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Databases"], - "summary": "Create a database", - "description": "Create a database under an existing `service`.", - "operationId": "createDatabase", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDatabase" + "post" : { + "tags" : [ "Glossaries" ], + "summary" : "Create a glossary", + "description" : "Create a new glossary.", + "operationId" : "createGlossary", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateGlossary" } } } }, - "responses": { - "200": { - "description": "The database", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Database" + "responses" : { + "200" : { + "description" : "The glossary", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } - } - }, - "/v1/databases/name/{fqn}": { - "get": { - "tags": ["Databases"], - "summary": "Get a database by fully qualified name", - "description": "Get a database by `fullyQualifiedName`.", - "operationId": "getDatabaseByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the database", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,databaseSchemas,usageSummary,location,tags,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + } + }, + "/v1/glossaries/documentation/csv" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "Get CSV documentation", + "operationId" : "getCsvDocumentation", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the glossary", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + } + } + } + } + } + }, + "/v1/glossaries/name/{name}" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "Get a glossary by name", + "description" : "Get a glossary by name.", + "operationId" : "getGlossaryByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the glossary", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,reviewers,usageCount,termCount,domain,extension" } - ], - "responses": { - "200": { - "description": "The database", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Database" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The glossary", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" } } } }, - "404": { - "description": "Database for instance {fqn} is not found" + "404" : { + "description" : "Glossary for instance {name} is not found" } } }, - "delete": { - "tags": ["Databases"], - "summary": "Delete a database by fully qualified name", - "description": "Delete a database by `fullyQualifiedName`. Databases can only be deleted if it has no tables.", - "operationId": "deleteDatabaseByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the database", - "required": true, - "schema": { - "type": "string" - } + "delete" : { + "tags" : [ "Glossaries" ], + "summary" : "Delete a glossary by name", + "description" : "Delete a glossary by `name`.", + "operationId" : "deleteGlossaryByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Database for instance {fqn} is not found" + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the glossary", + "required" : true, + "schema" : { + "type" : "string" } - } - } - }, - "/v1/databases/restore": { - "put": { - "tags": ["Databases"], - "summary": "Restore a soft deleted Database.", - "description": "Restore a soft deleted Database.", - "operationId": "restore_3", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "glossary for instance {name} is not found" + } + } + } + }, + "/v1/glossaries/name/{name}/export" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "Export glossary in CSV format", + "operationId" : "exportGlossary", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the glossary", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Exported csv with glossary terms", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + } + } + } + } + } + }, + "/v1/glossaries/name/{name}/import" : { + "put" : { + "tags" : [ "Glossaries" ], + "summary" : "Import glossary terms from CSV to create, and update glossary terms", + "operationId" : "importGlossary", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the glossary", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "dryRun", + "in" : "query", + "description" : "Dry-run when true is used for validating the CSV without really importing it. (default=true)", + "schema" : { + "type" : "boolean", + "default" : true + } + } ], + "requestBody" : { + "content" : { + "text/plain" : { + "schema" : { + "type" : "string" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Database. ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Database" + "responses" : { + "200" : { + "description" : "Import result", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CsvImportResult" } } } @@ -5828,170 +9940,187 @@ } } }, - "/v1/databases/{id}": { - "get": { - "tags": ["Databases"], - "summary": "Get a database by Id", - "description": "Get a database by `Id`.", - "operationId": "getDatabaseByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the database", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,databaseSchemas,usageSummary,location,tags,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The database", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Database" - } + "/v1/glossaries/restore" : { + "put" : { + "tags" : [ "Glossaries" ], + "summary" : "Restore a soft deleted glossary", + "description" : "Restore a soft deleted Glossary.", + "operationId" : "restore_13", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } - }, - "404": { - "description": "Database for instance {id} is not found" - } - } - }, - "delete": { - "tags": ["Databases"], - "summary": "Delete a database by Id", - "description": "Delete a database by `Id`. Database can only be deleted if it has no tables.", - "operationId": "deleteDatabase", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the database", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Database for instance {id} is not found" } - } - }, - "patch": { - "tags": ["Databases"], - "summary": "Update a database", - "description": "Update an existing database using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchDatabase", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the database", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Glossary ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" + } + } + } + } + } + } + }, + "/v1/glossaries/{id}" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "Get a glossary by Id", + "description" : "Get a glossary by `Id`.", + "operationId" : "getGlossaryByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,reviewers,usageCount,termCount,domain,extension" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The glossary", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" + } + } + } + }, + "404" : { + "description" : "Glossary for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Glossaries" ], + "summary" : "Delete a glossary by Id", + "description" : "Delete a glossary by `Id`.", + "operationId" : "deleteGlossary", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "glossary for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Glossaries" ], + "summary" : "Update a glossary", + "description" : "Update an existing glossary using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchGlossary", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/databases/{id}/versions": { - "get": { - "tags": ["Databases"], - "summary": "List database versions", - "description": "Get a list of all the versions of a database identified by `Id`", - "operationId": "listAllDatabaseVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the database", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/glossaries/{id}/versions" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "List glossary versions", + "description" : "Get a list of all the versions of a glossary identified by `id`", + "operationId" : "listAllGlossaryVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of database versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + } ], + "responses" : { + "200" : { + "description" : "List of glossary versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } @@ -5999,1457 +10128,1981 @@ } } }, - "/v1/databases/{id}/versions/{version}": { - "get": { - "tags": ["Databases"], - "summary": "Get a version of the database", - "description": "Get a version of the database by given `Id`", - "operationId": "getSpecificDatabaseVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the database", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Database version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/glossaries/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "Get a version of the glossaries", + "description" : "Get a version of the glossary by given `Id`", + "operationId" : "getSpecificGlossaryVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "glossary version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" } - ], - "responses": { - "200": { - "description": "database", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Database" + } ], + "responses" : { + "200" : { + "description" : "glossaries", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" } } } }, - "404": { - "description": "Database for instance {id} and version {version} is not found" + "404" : { + "description" : "Glossary for instance {id} and version {version} is not found" } } } }, - "/v1/events": { - "get": { - "tags": ["Events"], - "summary": "Get change events", - "description": "Get a list of change events matching event types, entity type, from a given date", - "operationId": "listChangeEvents", - "parameters": [ - { - "name": "entityCreated", - "in": "query", - "description": "List of comma separated entities requested for `entityCreated` event. When set to `*` all entities will be returned", - "schema": { - "type": "string", - "example": "table,dashboard,..." - } - }, - { - "name": "entityUpdated", - "in": "query", - "description": "List of comma separated entities requested for `entityCreated` event. When set to `*` all entities will be returned", - "schema": { - "type": "string", - "example": "table,dashboard,..." - } - }, - { - "name": "entityDeleted", - "in": "query", - "description": "List of comma separated entities requested for `entityCreated` event. When set to `*` all entities will be returned", - "schema": { - "type": "string", - "example": "table,dashboard,..." - } - }, - { - "name": "timestamp", - "in": "query", - "description": "Events starting from this unix timestamp in milliseconds", - "required": true, - "schema": { - "type": "integer", - "format": "int64", - "example": 1426349294842 + "/v1/glossaries/{id}/vote" : { + "put" : { + "tags" : [ "Glossaries" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_7", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } } } - ], - "responses": { - "200": { - "description": "Entity events", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EventList" - } + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/glossaryTerms" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "List glossary terms", + "description" : "Get a list of glossary terms. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listGlossaryTerm", + "parameters" : [ { + "name" : "glossary", + "in" : "query", + "description" : "List glossary terms filtered by glossary identified by Id given in `glossary` parameter.", + "schema" : { + "type" : "string", + "example" : "children,relatedTerms,reviewers,owner,tags,usageCount,domain,extension" + } + }, { + "name" : "parent", + "in" : "query", + "description" : "List glossary terms filtered by children of glossary term identified by Id given in `parent` parameter.", + "schema" : { + "type" : "string", + "example" : "children,relatedTerms,reviewers,owner,tags,usageCount,domain,extension" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,relatedTerms,reviewers,owner,tags,usageCount,domain,extension" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number glossary terms returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of glossary terms before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of glossary terms after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of glossary terms", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/GlossaryTermList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Glossaries" ], + "summary" : "Create or update a glossary term", + "description" : "Create a new glossary term, if it does not exist or update an existing glossary term.", + "operationId" : "createOrUpdateGlossaryTerm", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateGlossaryTerm" } } - }, - "404": { - "description": "Entity for instance {id} is not found" - } - } - } - }, - "/v1/events/subscriptions": { - "get": { - "tags": ["Events"], - "summary": "List all available Event Subscriptions", - "description": "Get a list of All available Event Subscriptions", - "operationId": "listEventSubscriptions", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,filteringRules" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number event subscriptions returned. (1 to 1000000, default = 10) ", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of event subscriptions before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of event subscriptions after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } } - ], - "responses": { - "200": { - "description": "List of Event Subscriptions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EventSubscriptionList" + }, + "responses" : { + "200" : { + "description" : "The glossary", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/GlossaryTerm" } } } + }, + "400" : { + "description" : "Bad request" } } }, - "put": { - "tags": ["Events"], - "summary": "Updated an existing or create a new Event Subscription", - "description": "Updated an existing or create a new Event Subscription", - "operationId": "createOrUpdateEventSubscription", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateEventSubscription" + "post" : { + "tags" : [ "Glossaries" ], + "summary" : "Create a glossary term", + "description" : "Create a new glossary term.", + "operationId" : "createGlossaryTerm", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateGlossaryTerm" } } } }, - "responses": { - "200": { - "description": "create Event Subscription", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateEventSubscription" + "responses" : { + "200" : { + "description" : "The glossary term", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/GlossaryTerm" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/glossaryTerms/name/{fqn}" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "Get a glossary term by fully qualified name", + "description" : "Get a glossary term by `fullyQualifiedName`.", + "operationId" : "getGlossaryTermByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the glossary term", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,relatedTerms,reviewers,owner,tags,usageCount,domain,extension" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The glossary term", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "Glossary for instance {fqn} is not found" } } }, - "post": { - "tags": ["Events"], - "summary": "Create a new Event Subscription", - "description": "Create a new Event Subscription", - "operationId": "createEventSubscription", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateEventSubscription" - } - } + "delete" : { + "tags" : [ "Glossaries" ], + "summary" : "Delete a glossary term by fully qualified name", + "description" : "Delete a glossary term by `fullyQualifiedName`.", + "operationId" : "deleteGlossaryTermByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - }, - "responses": { - "200": { - "description": "Event Subscription Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateEventSubscription" - } - } - } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the glossary term", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "400": { - "description": "Bad request" + "404" : { + "description" : "glossaryTerm for instance {fqn} is not found" } } } }, - "/v1/events/subscriptions/functions": { - "get": { - "tags": ["Events"], - "summary": "Get list of Event Subscription functions used in filtering EventSubscription", - "description": "Get list of Event Subscription functions used in filtering conditions in Event Subscriptions", - "operationId": "listEventSubscriptionFunctions", - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Function" - } - } + "/v1/glossaryTerms/restore" : { + "put" : { + "tags" : [ "Glossaries" ], + "summary" : "Restore a soft deleted glossary term", + "description" : "Restore a soft deleted glossary term.", + "operationId" : "restore_14", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } - } - } - }, - "/v1/events/subscriptions/name/{eventSubscriptionName}": { - "get": { - "tags": ["Events"], - "summary": "Get an Event Subscription by name", - "description": "Get an Event Subscription by name.", - "operationId": "getEventSubscriptionByName", - "parameters": [ - { - "name": "eventSubscriptionName", - "in": "path", - "description": "Name of the Event Subscription", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,filteringRules" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Chart ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/GlossaryTerm" + } + } + } + } + } + } + }, + "/v1/glossaryTerms/{id}" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "Get a glossary term by Id", + "description" : "Get a glossary term by `Id`.", + "operationId" : "getGlossaryTermByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary term", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,relatedTerms,reviewers,owner,tags,usageCount,domain,extension" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The glossary term", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" + } + } + } + }, + "404" : { + "description" : "Glossary for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Glossaries" ], + "summary" : "Delete a glossary term by Id", + "description" : "Delete a glossary term by `Id`.", + "operationId" : "delete", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary term", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "glossaryTerm for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Glossaries" ], + "summary" : "Update a glossary term", + "description" : "Update an existing glossary term using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchGlossaryTerm", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary term", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "Event Subscription with request name is returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EventSubscription" - } - } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } - }, - "404": { - "description": "Event Subscription for instance {eventSubscriptionName} is not found" } } } }, - "/v1/events/subscriptions/name/{eventSubscriptionName}/status": { - "get": { - "tags": ["Events"], - "summary": "Get Event Subscription status", - "description": "Get a event Subscription status by given Name", - "operationId": "getEventSubscriptionStatus", - "parameters": [ - { - "name": "eventSubscriptionName", - "in": "path", - "description": "Name of the Event Subscription", - "required": true, - "schema": { - "type": "string" - } + "/v1/glossaryTerms/{id}/versions" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "List glossary term versions", + "description" : "Get a list of all the versions of a glossary terms identified by `id`", + "operationId" : "listAllGlossaryTermVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary term", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "Return the current status of the Event Subscription", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionStatus" + } ], + "responses" : { + "200" : { + "description" : "List of glossary term versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } - }, - "404": { - "description": "Entity for instance {id} is not found" } } } }, - "/v1/events/subscriptions/name/{name}": { - "delete": { - "tags": ["Events"], - "summary": "Delete an Event Subscription by name", - "description": "Delete an Event Subscription by given `name`.", - "operationId": "deleteEventSubscriptionByName", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the Event Subscription", - "required": true, - "schema": { - "type": "string" - } + "/v1/glossaryTerms/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Glossaries" ], + "summary" : "Get a version of the glossary term", + "description" : "Get a version of the glossary term by given `Id`", + "operationId" : "getSpecificGlossaryTermVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the glossary term", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Entity for instance {name} is not found" + }, { + "name" : "version", + "in" : "path", + "description" : "glossary term version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" } - } - } - }, - "/v1/events/subscriptions/resources": { - "get": { - "tags": ["Events"], - "summary": "Get list of Event Subscriptions Resources used in filtering Event Subscription", - "description": "Get list of EventSubscription functions used in filtering conditions in Event Subscription", - "operationId": "listEventSubscriptionResources", - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResultListSubscriptionResourceDescriptor" + } ], + "responses" : { + "200" : { + "description" : "glossaries", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Glossary" } } } - } - } - } - }, - "/v1/events/subscriptions/trigger/{id}": { - "put": { - "tags": ["Events"], - "summary": "Trigger a existing Data Insight Report Job to run", - "description": "Trigger a existing Data Insight Report Job to run", - "operationId": "triggerDataInsightJob", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the event Subscription", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Trigger a Data Insight Job" }, - "400": { - "description": "Bad request" + "404" : { + "description" : "Glossary for instance {id} and version {version} is not found" } } } }, - "/v1/events/subscriptions/validation/condition/{expression}": { - "get": { - "tags": ["Events"], - "summary": "Validate a given condition", - "description": "Validate a given condition expression used in filtering rules.", - "operationId": "validateCondition", - "parameters": [ - { - "name": "expression", - "in": "path", - "description": "Expression to validate", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No value is returned" - }, - "400": { - "description": "Invalid expression" + "/v1/glossaryTerms/{id}/vote" : { + "put" : { + "tags" : [ "Glossaries" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_8", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - } - } - }, - "/v1/events/subscriptions/{eventSubscriptionId}/status": { - "get": { - "tags": ["Events"], - "summary": "Get Event Subscription status by Id", - "description": "Get a event Subscription status by given Name", - "operationId": "getEventSubscriptionStatusById", - "parameters": [ - { - "name": "eventSubscriptionId", - "in": "path", - "description": "Name of the Event Subscription", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } } } - ], - "responses": { - "200": { - "description": "Return the current status of the Event Subscription", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriptionStatus" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } }, - "404": { - "description": "Entity for instance {id} is not found" + "404" : { + "description" : "model for instance {id} is not found" } } } }, - "/v1/events/subscriptions/{id}": { - "get": { - "tags": ["Events"], - "summary": "Get a event Subscription by ID", - "description": "Get a event Subscription by given Id", - "operationId": "getEventSubscriptionByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Event Subscription", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,filteringRules" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/lineage" : { + "put" : { + "tags" : [ "Lineage" ], + "summary" : "Add a lineage edge", + "description" : "Add a lineage edge with from entity as upstream node and to entity as downstream node.", + "operationId" : "addLineageEdge", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddLineage" + } } } - ], - "responses": { - "200": { - "description": "Entity events", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EventSubscription" - } + }, + "responses" : { + "404" : { + "description" : "Entity for instance {id} is not found" + } + } + } + }, + "/v1/lineage/{entity}/name/{fqn}" : { + "get" : { + "tags" : [ "Lineage" ], + "summary" : "Get lineage by fully qualified name", + "description" : "Get lineage details for an entity identified by fully qualified name.", + "operationId" : "getLineageByFQN", + "parameters" : [ { + "name" : "entity", + "in" : "path", + "description" : "Entity type for which lineage is requested", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the entity that uniquely identifies an entity", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "upstreamDepth", + "in" : "query", + "description" : "Upstream depth of lineage (default=1, min=0, max=3)", + "schema" : { + "maximum" : 3, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 1 + } + }, { + "name" : "downstreamDepth", + "in" : "query", + "description" : "Upstream depth of lineage (default=1, min=0, max=3)", + "schema" : { + "maximum" : 3, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 1 + } + } ], + "responses" : { + "200" : { + "description" : "Entity lineage", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityLineage" + } + } + } + }, + "404" : { + "description" : "Entity for instance {fqn} is not found" + } + } + } + }, + "/v1/lineage/{entity}/{id}" : { + "get" : { + "tags" : [ "Lineage" ], + "summary" : "Get lineage by Id", + "description" : "Get lineage details for an entity identified by `Id`.", + "operationId" : "getLineage", + "parameters" : [ { + "name" : "entity", + "in" : "path", + "description" : "Entity type for which lineage is requested", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the entity", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "upstreamDepth", + "in" : "query", + "description" : "Upstream depth of lineage (default=1, min=0, max=3)", + "schema" : { + "maximum" : 3, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 1 + } + }, { + "name" : "downstreamDepth", + "in" : "query", + "description" : "Upstream depth of lineage (default=1, min=0, max=3)", + "schema" : { + "maximum" : 3, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 1 + } + } ], + "responses" : { + "200" : { + "description" : "Entity lineage", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityLineage" + } + } + } + }, + "404" : { + "description" : "Entity for instance {id} is not found" + } + } + } + }, + "/v1/lineage/{fromEntity}/{fromId}/{toEntity}/{toId}" : { + "delete" : { + "tags" : [ "Lineage" ], + "summary" : "Delete a lineage edge", + "description" : "Delete a lineage edge with from entity as upstream node and to entity as downstream node.", + "operationId" : "deleteLineageEdge", + "parameters" : [ { + "name" : "fromEntity", + "in" : "path", + "description" : "Entity type of upstream entity of the edge", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "fromId", + "in" : "path", + "description" : "Entity id", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "toEntity", + "in" : "path", + "description" : "Entity type for downstream entity of the edge", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "toId", + "in" : "path", + "description" : "Entity id", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "404" : { + "description" : "Entity for instance {fromId} is not found" + } + } + } + }, + "/v1/metadata/types" : { + "get" : { + "tags" : [ "Metadata" ], + "summary" : "List types", + "description" : "Get a list of types. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listTypes", + "parameters" : [ { + "name" : "category", + "in" : "query", + "description" : "Filter types by metadata type category.", + "schema" : { + "type" : "string", + "example" : "Property, Entity" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number types returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of types before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of types after this cursor", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of types", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TypeList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Metadata" ], + "summary" : "Create or update a type", + "description" : "Create a new type, if it does not exist or update an existing type.", + "operationId" : "createOrUpdate", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateType" } } - }, - "404": { - "description": "Entity for instance {id} is not found" } - } - }, - "delete": { - "tags": ["Events"], - "summary": "Delete an Event Subscription by Id", - "description": "Delete an Event Subscription", - "operationId": "deleteEventSubscription", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Event Subscription", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Entity events", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EventSubscription" + }, + "responses" : { + "200" : { + "description" : "The type", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Type" } } } }, - "404": { - "description": "Entity for instance {id} is not found" + "400" : { + "description" : "Bad request" } } }, - "patch": { - "tags": ["Events"], - "summary": "Update an Event Subscriptions", - "description": "Update an existing Event Subscriptions using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchEventSubscription", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the event Subscription", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "Metadata" ], + "summary" : "Create a type", + "description" : "Create a new type.", + "operationId" : "createType", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateType" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "The type", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Type" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/metadata/types/name/{name}" : { + "get" : { + "tags" : [ "Metadata" ], + "summary" : "Get a type by name", + "description" : "Get a type by name.", + "operationId" : "getTypeByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the type", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "customProperties" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The type", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Type" + } + } + } + }, + "404" : { + "description" : "Type for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Metadata" ], + "summary" : "Delete a type by name", + "description" : "Delete a type by `name`.", + "operationId" : "deleteTypeByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the type", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "type for instance {name} is not found" + } + } + } + }, + "/v1/metadata/types/{id}" : { + "get" : { + "tags" : [ "Metadata" ], + "summary" : "Get a type", + "description" : "Get a type by `id`.", + "operationId" : "getTypeByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the type", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "customProperties" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The type", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Type" + } + } + } + }, + "404" : { + "description" : "Type for instance {id} is not found" + } + } + }, + "put" : { + "tags" : [ "Metadata" ], + "summary" : "Add or update a Property to an entity", + "description" : "Add or update a property to an entity type. Properties can only be added to entity type and not property type.", + "operationId" : "addProperty", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the type", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CustomProperty" + } } } - } - } - }, - "/v1/events/subscriptions/{id}/versions": { - "get": { - "tags": ["Events"], - "summary": "List Event Subscription versions", - "description": "Get a list of all the versions of an Event Subscription identified by `Id`", - "operationId": "listAllEventSubscriptionVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Event Subscription", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "type for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Metadata" ], + "summary" : "Delete a type by id", + "description" : "Delete a type by `id`.", + "operationId" : "deleteType", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the type", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "type for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Metadata" ], + "summary" : "Update a type", + "description" : "Update an existing type using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchType", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the type", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "List of Event Subscription versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/metadata/types/{id}/versions" : { + "get" : { + "tags" : [ "Metadata" ], + "summary" : "List type versions", + "description" : "Get a list of all the versions of a type identified by `id`", + "operationId" : "listAllTypeVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the type", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of type versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } - } + } + } + } + } + }, + "/v1/metadata/types/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Metadata" ], + "summary" : "Get a version of the types", + "description" : "Get a version of the type by given `id`", + "operationId" : "getSpecificTypeVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the type", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - } - } - }, - "/v1/events/subscriptions/{id}/versions/{version}": { - "get": { - "tags": ["Events"], - "summary": "Get a version of the Event Subscription", - "description": "Get a version of the Event Subscription by given `Id`", - "operationId": "getSpecificEventSubscriptionVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Event Subscription", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Event Subscription version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + }, { + "name" : "version", + "in" : "path", + "description" : "type version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" } - ], - "responses": { - "200": { - "description": "Get specific version of Event Subscription", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EventSubscription" + } ], + "responses" : { + "200" : { + "description" : "types", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Type" } } - } - }, - "404": { - "description": "Event Subscription for instance {id} and version {version} is not found" + } + }, + "404" : { + "description" : "Type for instance {id} and version {version} is not found" } } } }, - "/v1/feed": { - "get": { - "tags": ["Feeds"], - "summary": "List threads", - "description": "Get a list of threads, optionally filtered by `entityLink`.", - "operationId": "listThreads", - "parameters": [ - { - "name": "limitPosts", - "in": "query", - "description": "Limit the number of posts sorted by chronological order (1 to 1000000, default = 3)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int64", - "default": 3 - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number of threads returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 1, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of threads before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of threads after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "entityLink", - "in": "query", - "description": "Filter threads by entity link", - "schema": { - "type": "string", - "example": "" - } - }, - { - "name": "userId", - "in": "query", - "description": "Filter threads by user id. This filter requires a 'filterType' query param. The default filter type is 'OWNER'. This filter cannot be combined with the entityLink filter.", - "schema": { - "type": "string" - } - }, - { - "name": "filterType", - "in": "query", - "description": "Filter type definition for the user filter. It can take one of 'OWNER', 'FOLLOWS', 'MENTIONS'. This must be used with the 'user' query param", - "schema": { - "type": "string", - "enum": [ - "OWNER", - "MENTIONS", - "FOLLOWS", - "ASSIGNED_TO", - "ASSIGNED_BY" - ] - } - }, - { - "name": "resolved", - "in": "query", - "description": "Filter threads by whether they are resolved or not. By default resolved is false", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "type", - "in": "query", - "description": "The type of thread to filter the results. It can take one of 'Conversation', 'Task', 'Announcement'", - "schema": { - "type": "string", - "enum": ["Conversation", "Task", "Announcement"] - } - }, - { - "name": "taskStatus", - "in": "query", - "description": "The status of tasks to filter the results. It can take one of 'Open', 'Closed'. This filter will take effect only when type is set to Task", - "schema": { - "type": "string", - "enum": ["Open", "Closed"] - } - }, - { - "name": "activeAnnouncement", - "in": "query", - "description": "Whether to filter results by announcements that are currently active. This filter will take effect only when type is set to Announcement", - "schema": { - "type": "boolean" - } + "/v1/metrics" : { + "get" : { + "tags" : [ "Metrics (beta)" ], + "summary" : "List metrics", + "description" : "Get a list of metrics. Use `fields` parameter to get only necessary fields.", + "operationId" : "listMetrics", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,usageSummary,domain" + } + }, { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 } - ], - "responses": { - "200": { - "description": "List of threads", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ThreadList" + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of metrics before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of metrics after this cursor", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of metrics", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetricsList" } } } } } }, - "post": { - "tags": ["Feeds"], - "summary": "Create a thread", - "description": "Create a new thread. A thread is created about a data asset when a user posts the first post.", - "operationId": "createThread", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateThread" + "put" : { + "tags" : [ "Metrics (beta)" ], + "summary" : "Create or update a metric", + "description" : "Create a new metric, if it does not exist or update an existing metric.", + "operationId" : "createOrUpdateMetric", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Metrics" } } } }, - "responses": { - "200": { - "description": "The thread", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Thread" + "responses" : { + "200" : { + "description" : "The metric", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Metrics" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } - } - }, - "/v1/feed/count": { - "get": { - "tags": ["Feeds"], - "summary": "Count of threads", - "description": "Get a count of threads, optionally filtered by `entityLink` for each of the entities.", - "operationId": "countThreads", - "parameters": [ - { - "name": "entityLink", - "in": "query", - "description": "Filter threads by entity link", - "schema": { - "type": "string", - "example": "" - } - }, - { - "name": "type", - "in": "query", - "description": "The type of thread to filter the results. It can take one of 'Conversation', 'Task', 'Announcement'", - "schema": { - "type": "string", - "enum": ["Conversation", "Task", "Announcement"] - } - }, - { - "name": "taskStatus", - "in": "query", - "description": "The status of tasks to filter the results. It can take one of 'Open', 'Closed'. This filter will take effect only when type is set to Task", - "schema": { - "type": "string", - "enum": ["Open", "Closed"] - } - }, - { - "name": "isResolved", - "in": "query", - "description": "Filter threads by whether it is active or resolved", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Count of threads", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ThreadCount" - } + }, + "post" : { + "tags" : [ "Metrics (beta)" ], + "summary" : "Create a metric", + "description" : "Create a new metric.", + "operationId" : "createMetric", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Metrics" } } } - } - } - }, - "/v1/feed/tasks/{id}": { - "get": { - "tags": ["Feeds"], - "summary": "Get a task thread by task Id", - "description": "Get a task thread by `task Id`.", - "operationId": "getTaskByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the task thread", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The task thread", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Thread" + }, + "responses" : { + "200" : { + "description" : "The metric", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Metrics" } } } }, - "404": { - "description": "Task for instance {id} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/feed/tasks/{id}/close": { - "put": { - "tags": ["Feeds"], - "summary": "Close a task", - "description": "Close a task without making any changes to the entity.", - "operationId": "closeTask", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the task thread", - "required": true, - "schema": { - "type": "string" - } + "/v1/metrics/{id}" : { + "get" : { + "tags" : [ "Metrics (beta)" ], + "summary" : "Get a metric by Id", + "description" : "Get a metric by `Id`.", + "operationId" : "getMetricByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the metric", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloseTask" - } - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,usageSummary,domain" } - }, - "responses": { - "200": { - "description": "The task thread.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Thread" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The metrics", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Metrics" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "Metrics for instance {id} is not found" } } } }, - "/v1/feed/tasks/{id}/resolve": { - "put": { - "tags": ["Feeds"], - "summary": "Resolve a task", - "description": "Resolve a task.", - "operationId": "resolveTask", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the task thread", - "required": true, - "schema": { - "type": "string" - } + "/v1/metrics/{id}/vote" : { + "put" : { + "tags" : [ "Metrics (beta)" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_9", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResolveTask" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" } } } }, - "responses": { - "200": { - "description": "The task thread", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Thread" - } + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/mlmodels" : { + "get" : { + "tags" : [ "ML Models" ], + "summary" : "List ML models", + "description" : "Get a list of mlmodels, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listMlModels", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,dashboard,followers,tags,usageSummary,extension,domain" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter MlModels by service name", + "schema" : { + "type" : "string", + "example" : "airflow" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number models returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of models before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of models after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of models", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModelList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "ML Models" ], + "summary" : "Create or update an ML model", + "description" : "Create a new ML model, if it does not exist or update an existing model.", + "operationId" : "createOrUpdateMlModel", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMlModel" } } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/feed/{id}": { - "get": { - "tags": ["Feeds"], - "summary": "Get a thread by Id", - "description": "Get a thread by `Id`.", - "operationId": "getThreadByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Thread", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "entityType", - "in": "path", - "description": "Type of the Entity", - "required": true, - "schema": { - "type": "string" - } } - ], - "responses": { - "200": { - "description": "The thread", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Thread" + }, + "responses" : { + "200" : { + "description" : "The model", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModel" } } } }, - "404": { - "description": "Thread for instance {id} is not found" + "400" : { + "description" : "Bad request" } } }, - "patch": { - "tags": ["Feeds"], - "summary": "Update a thread by `Id`.", - "description": "Update an existing thread using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchThread", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the thread", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "ML Models" ], + "summary" : "Create an ML model", + "description" : "Create a new ML model.", + "operationId" : "createMlModel", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMlModel" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + "responses" : { + "200" : { + "description" : "ML Model", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModel" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/mlmodels/name/{fqn}" : { + "get" : { + "tags" : [ "ML Models" ], + "summary" : "Get an ML model by fully qualified name", + "description" : "Get an ML model by fully qualified name.", + "operationId" : "getMlModelByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of ML Model", + "required" : true, + "schema" : { + "type" : "string" } - } - } - }, - "/v1/feed/{id}/posts": { - "get": { - "tags": ["Feeds"], - "summary": "Get all the posts of a thread", - "description": "Get all the posts of an existing thread.", - "operationId": "getAllPostOfThread", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the thread", - "required": true, - "schema": { - "type": "string" - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,dashboard,followers,tags,usageSummary,extension,domain" } - ], - "responses": { - "200": { - "description": "The posts of the given thread.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostList" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The model", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModel" } } } + }, + "404" : { + "description" : "Model for instance {fqn} is not found" } } }, - "post": { - "tags": ["Feeds"], - "summary": "Add post to a thread", - "description": "Add a post to an existing thread.", - "operationId": "addPostToThread", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the thread", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePost" - } - } + "delete" : { + "tags" : [ "ML Models" ], + "summary" : "Delete a ML model by fully qualified name", + "description" : "Delete an ML model by `fullyQualifiedName`.", + "operationId" : "deleteMlModelByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - }, - "responses": { - "200": { - "description": "The post", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Thread" - } - } - } - }, - "400": { - "description": "Bad request" + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - } - } - }, - "/v1/feed/{threadId}": { - "delete": { - "tags": ["Feeds"], - "summary": "Delete a thread by Id", - "description": "Delete an existing thread and all its relationships.", - "operationId": "deleteThread", - "parameters": [ - { - "name": "threadId", - "in": "path", - "description": "ThreadId of the thread to be deleted", - "required": true, - "schema": { - "type": "string" - } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Name of the ML Model", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "thread with {threadId} is not found" + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "400": { - "description": "Bad request" + "404" : { + "description" : "model for instance {fqn} is not found" } } } }, - "/v1/feed/{threadId}/posts/{postId}": { - "delete": { - "tags": ["Feeds"], - "summary": "Delete a post from its thread", - "description": "Delete a post from an existing thread.", - "operationId": "deletePostFromThread", - "parameters": [ - { - "name": "threadId", - "in": "path", - "description": "ThreadId of the post to be deleted", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "postId", - "in": "path", - "description": "PostId of the post to be deleted", - "required": true, - "schema": { - "type": "string" + "/v1/mlmodels/restore" : { + "put" : { + "tags" : [ "ML Models" ], + "summary" : "Restore a soft deleted ML model", + "description" : "Restore a soft deleted ML Model.", + "operationId" : "restore_15", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "post with {postId} is not found" - }, - "400": { - "description": "Bad request" - } - } - }, - "patch": { - "tags": ["Feeds"], - "summary": "Update post of a thread by `Id`.", - "description": "Update a post of an existing thread using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" }, - "operationId": "patchPostOfThread", - "parameters": [ - { - "name": "threadId", - "in": "path", - "description": "Id of the thread", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "postId", - "in": "path", - "description": "Id of the post", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + "responses" : { + "200" : { + "description" : "Successfully restored the MlModel ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModel" + } + } + } + } + } + } + }, + "/v1/mlmodels/{id}" : { + "get" : { + "tags" : [ "ML Models" ], + "summary" : "Get an ML model by Id", + "description" : "Get an ML model by `Id`.", + "operationId" : "getMlModelByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,dashboard,followers,tags,usageSummary,extension,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The model", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModel" + } + } + } + }, + "404" : { + "description" : "Model for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "ML Models" ], + "summary" : "Delete an ML model by Id", + "description" : "Delete an ML model by `Id`.", + "operationId" : "deleteMlModel", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "ML Models" ], + "summary" : "Update an ML model", + "description" : "Update an existing ML model using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchMlModel", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "400": { - "description": "Bad request" - }, - "404": { - "description": "post with {postId} is not found" + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } } } } }, - "/v1/glossaries": { - "get": { - "tags": ["Glossaries"], - "summary": "List glossaries", - "description": "Get a list of glossaries. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listGlossaries", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tags,reviewers,usageCount,termCount" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number glossaries returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of glossaries before this cursor", - "schema": { - "type": "string" + "/v1/mlmodels/{id}/followers" : { + "put" : { + "tags" : [ "ML Models" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as follower of this model", + "operationId" : "addFollower_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" + } } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of glossaries after this cursor", - "schema": { - "type": "string" + } + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } } }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/mlmodels/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "ML Models" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the model.", + "operationId" : "deleteFollower_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of glossaries", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GlossaryList" + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } } } - }, - "put": { - "tags": ["Glossaries"], - "summary": "Create or update a glossary", - "description": "Create a new glossary, if it does not exist or update an existing glossary.", - "operationId": "createOrUpdateGlossary", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGlossary" - } - } + } + }, + "/v1/mlmodels/{id}/versions" : { + "get" : { + "tags" : [ "ML Models" ], + "summary" : "List ML model versions", + "description" : "Get a list of all the versions of an ML Model identified by `id`", + "operationId" : "listAllMlModelVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - }, - "responses": { - "200": { - "description": "The glossary", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" + } ], + "responses" : { + "200" : { + "description" : "List of Ml Model versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } - }, - "400": { - "description": "Bad request" } } - }, - "post": { - "tags": ["Glossaries"], - "summary": "Create a glossary", - "description": "Create a new glossary.", - "operationId": "createGlossary", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGlossary" + } + }, + "/v1/mlmodels/{id}/versions/{version}" : { + "get" : { + "tags" : [ "ML Models" ], + "summary" : "Get a version of the ML model", + "description" : "Get a version of the ML model by given `id`", + "operationId" : "getSpecificMlModelVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "ML Model version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "MlModel", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModel" + } + } + } + }, + "404" : { + "description" : "ML Model for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/mlmodels/{id}/vote" : { + "put" : { + "tags" : [ "ML Models" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_10", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" } } } }, - "responses": { - "200": { - "description": "The glossary", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "model for instance {id} is not found" } } } }, - "/v1/glossaries/documentation/csv": { - "get": { - "tags": ["Glossaries"], - "summary": "Get CSV documentation", - "operationId": "getCsvDocumentation", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the glossary", - "required": true, - "schema": { - "type": "string" - } + "/v1/permissions" : { + "get" : { + "tags" : [ "Permissions" ], + "summary" : "Get permissions for logged in user", + "operationId" : "getResourcePermissions", + "parameters" : [ { + "name" : "user", + "in" : "query", + "description" : "Permission for user specified in this query param. If not specified, the user is defaulted to the logged in user", + "schema" : { + "type" : "string", + "example" : "john" } - ], - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": { - "schema": { - "type": "string" + } ], + "responses" : { + "200" : { + "description" : "Permissions for logged in user", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResourcePermissionList" } } } @@ -7457,116 +12110,66 @@ } } }, - "/v1/glossaries/name/{name}": { - "get": { - "tags": ["Glossaries"], - "summary": "Get a glossary by name", - "description": "Get a glossary by name.", - "operationId": "getGlossaryByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the glossary", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tags,reviewers,usageCount,termCount" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/permissions/policies" : { + "get" : { + "tags" : [ "Permissions" ], + "summary" : "Get permissions for a set of policies", + "operationId" : "getPermissionsForPolicies", + "parameters" : [ { + "name" : "ids", + "in" : "query", + "description" : "List of policy of ids", + "schema" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" } } - ], - "responses": { - "200": { - "description": "The glossary", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" + } ], + "responses" : { + "200" : { + "description" : "Permissions for a set of policies", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResourcePermissionList" } } } - }, - "404": { - "description": "Glossary for instance {name} is not found" - } - } - }, - "delete": { - "tags": ["Glossaries"], - "summary": "Delete a glossary by name", - "description": "Delete a glossary by `name`.", - "operationId": "deleteGlossaryByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the glossary", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "glossary for instance {name} is not found" } } } }, - "/v1/glossaries/name/{name}/export": { - "get": { - "tags": ["Glossaries"], - "summary": "Export glossary in CSV format", - "operationId": "exportGlossary", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the glossary", - "required": true, - "schema": { - "type": "string" - } + "/v1/permissions/{resource}" : { + "get" : { + "tags" : [ "Permissions" ], + "summary" : "Get permissions a given resource/entity type for logged in user", + "operationId" : "getResourceTypePermission", + "parameters" : [ { + "name" : "user", + "in" : "query", + "description" : "Permission for user specified in this query param. If not specified, the user is defaulted to the logged in user", + "schema" : { + "type" : "string", + "example" : "john" + } + }, { + "name" : "resource", + "in" : "path", + "description" : "Type of the resource", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "Exported csv with glossary terms", - "content": { - "application/json": { - "schema": { - "type": "string" + } ], + "responses" : { + "200" : { + "description" : "Permissions for logged in user", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResourcePermissionList" } } } @@ -7574,726 +12177,1297 @@ } } }, - "/v1/glossaries/name/{name}/import": { - "put": { - "tags": ["Glossaries"], - "summary": "Import glossary terms from CSV to create, and update glossary terms", - "operationId": "importGlossary", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the glossary", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "dryRun", - "in": "query", - "description": "Dry-run when true is used for validating the CSV without really importing it. (default=true)", - "schema": { - "type": "boolean", - "default": true - } + "/v1/permissions/{resource}/name/{name}" : { + "get" : { + "tags" : [ "Permissions" ], + "summary" : "Get permissions for a given entity name for a logged in user", + "operationId" : "getResourcePermissionByName", + "parameters" : [ { + "name" : "user", + "in" : "query", + "description" : "Permission for user specified in this query param. If not specified, the user is defaulted to the logged in user", + "schema" : { + "type" : "string", + "example" : "john" + } + }, { + "name" : "resource", + "in" : "path", + "description" : "Type of the resource", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the entity", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Permissions for logged in user", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResourcePermissionList" + } + } + } + } + } + } + }, + "/v1/permissions/{resource}/{id}" : { + "get" : { + "tags" : [ "Permissions" ], + "summary" : "Get permissions for a given entity for a logged in user", + "operationId" : "getResourcePermission", + "parameters" : [ { + "name" : "user", + "in" : "query", + "description" : "Permission for user specified in this query param. If not specified, the user is defaulted to the logged in user", + "schema" : { + "type" : "string", + "example" : "john" } - ], - "requestBody": { - "content": { - "text/plain": { - "schema": { - "type": "string" + }, { + "name" : "resource", + "in" : "path", + "description" : "Type of the resource", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "Permissions for logged in user", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResourcePermissionList" + } + } + } + } + } + } + }, + "/v1/personas" : { + "get" : { + "tags" : [ "Personas" ], + "summary" : "List personas", + "description" : "Get a list of personas. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listPersonas", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "users" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number of personas returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of personas before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of personas after this cursor", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of personas", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PersonaList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Personas" ], + "summary" : "Update Persona", + "description" : "Create or Update a Persona.", + "operationId" : "createOrUpdatePersona", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePersona" } } } }, - "responses": { - "200": { - "description": "Import result", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CsvImportResult" + "responses" : { + "200" : { + "description" : "The Persona.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Persona" } } } + }, + "400" : { + "description" : "Bad request" } } - } - }, - "/v1/glossaries/restore": { - "put": { - "tags": ["Glossaries"], - "summary": "Restore a soft deleted glossary", - "description": "Restore a soft deleted Glossary.", - "operationId": "restore_10", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + }, + "post" : { + "tags" : [ "Personas" ], + "summary" : "Create a Persona", + "description" : "Create a new Persona.", + "operationId" : "createPersona", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePersona" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Glossary ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" - } - } - } + "responses" : { + "200" : { + "description" : "The Persona.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Persona" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/personas/name/{name}" : { + "get" : { + "tags" : [ "Personas" ], + "summary" : "Get a Persona by name", + "description" : "Get a Persona by `name`.", + "operationId" : "getPersonaByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the Persona", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "users" } - } - } - }, - "/v1/glossaries/{id}": { - "get": { - "tags": ["Glossaries"], - "summary": "Get a glossary by Id", - "description": "Get a glossary by `Id`.", - "operationId": "getGlossaryByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the glossary", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The Persona", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Persona" + } + } + } + }, + "404" : { + "description" : "Persona for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Personas" ], + "summary" : "Delete a Persona by name", + "description" : "Delete a Persona by given `name`.", + "operationId" : "deletePersonaByName", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the Persona", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Persona for instance {name} is not found" + } + } + } + }, + "/v1/personas/{id}" : { + "get" : { + "tags" : [ "Personas" ], + "summary" : "Get a persona by id", + "description" : "Get a persona by `id`.", + "operationId" : "getPersonaByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Persona", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "users" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The Persona", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Persona" + } + } + } + }, + "404" : { + "description" : "Persona for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Personas" ], + "summary" : "Delete a Persona by id", + "description" : "Delete a Persona by given `id`.", + "operationId" : "deletePersona", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Persona", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tags,reviewers,usageCount,termCount" + "404" : { + "description" : "Persona for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Personas" ], + "summary" : "Update a Persona", + "description" : "Update an existing persona with JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchPersona", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Persona", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/personas/{id}/versions" : { + "get" : { + "tags" : [ "Personas" ], + "summary" : "List Persona versions", + "description" : "Get a list of all the versions of a persona identified by `id`", + "operationId" : "listAllPersonaVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Persona", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of persona versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/personas/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Personas" ], + "summary" : "Get a version of the Persona", + "description" : "Get a version of the Persona by given `id`", + "operationId" : "getSpecificPersonaVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Persona", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Personas version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "Persona", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Persona" + } + } + } + }, + "404" : { + "description" : "Persona for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/pipelines" : { + "get" : { + "tags" : [ "Pipelines" ], + "summary" : "List pipelines", + "description" : "Get a list of pipelines, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listPipelines", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tasks,pipelineStatus,followers,tags,extension,scheduleInterval,domain" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter pipelines by service name", + "schema" : { + "type" : "string", + "example" : "airflow" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number pipelines returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of pipelines before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of pipelines after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of pipelines", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Pipelines" ], + "summary" : "Create or update a pipeline", + "description" : "Create a new pipeline, if it does not exist or update an existing pipeline.", + "operationId" : "createOrUpdatePipeline", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePipeline" + } } } - ], - "responses": { - "200": { - "description": "The glossary", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" + }, + "responses" : { + "200" : { + "description" : "The pipeline", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Pipeline" } } } }, - "404": { - "description": "Glossary for instance {id} is not found" + "400" : { + "description" : "Bad request" } } }, - "delete": { - "tags": ["Glossaries"], - "summary": "Delete a glossary by Id", - "description": "Delete a glossary by `Id`.", - "operationId": "deleteGlossary", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the glossary", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "glossary for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Glossaries"], - "summary": "Update a glossary", - "description": "Update an existing glossary using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchGlossary", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the glossary", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "Pipelines" ], + "summary" : "Create a pipeline", + "description" : "Create a new pipeline.", + "operationId" : "createPipeline", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePipeline" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + "responses" : { + "200" : { + "description" : "The pipeline", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Pipeline" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/pipelines/name/{fqn}" : { + "get" : { + "tags" : [ "Pipelines" ], + "summary" : "Get a pipeline by fully qualified name", + "description" : "Get a pipeline by fully qualified name.", + "operationId" : "getPipelineByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the pipeline", + "required" : true, + "schema" : { + "type" : "string" } - } - } - }, - "/v1/glossaries/{id}/versions": { - "get": { - "tags": ["Glossaries"], - "summary": "List glossary versions", - "description": "Get a list of all the versions of a glossary identified by `id`", - "operationId": "listAllGlossaryVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the glossary", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tasks,pipelineStatus,followers,tags,extension,scheduleInterval,domain" } - ], - "responses": { - "200": { - "description": "List of glossary versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The pipeline", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Pipeline" } } } + }, + "404" : { + "description" : "Pipeline for instance {fqn} is not found" + } + } + }, + "delete" : { + "tags" : [ "Pipelines" ], + "summary" : "Delete a pipeline by fully qualified name", + "description" : "Delete a pipeline by `fullyQualifiedName`.", + "operationId" : "deletePipelineByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the pipeline", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Pipeline for instance {fqn} is not found" } } } }, - "/v1/glossaries/{id}/versions/{version}": { - "get": { - "tags": ["Glossaries"], - "summary": "Get a version of the glossaries", - "description": "Get a version of the glossary by given `Id`", - "operationId": "getSpecificGlossaryVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the glossary", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "glossary version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + "/v1/pipelines/restore" : { + "put" : { + "tags" : [ "Pipelines" ], + "summary" : "Restore a soft deleted pipeline", + "description" : "Restore a soft deleted pipeline.", + "operationId" : "restore_16", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - ], - "responses": { - "200": { - "description": "glossaries", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Pipeline ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Pipeline" } } } - }, - "404": { - "description": "Glossary for instance {id} and version {version} is not found" } } } }, - "/v1/glossaryTerms": { - "get": { - "tags": ["Glossaries"], - "summary": "List glossary terms", - "description": "Get a list of glossary terms. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listGlossaryTerm", - "parameters": [ - { - "name": "glossary", - "in": "query", - "description": "List glossary terms filtered by glossary identified by Id given in `glossary` parameter.", - "schema": { - "type": "string", - "example": "children,relatedTerms,reviewers,owner,tags,usageCount" - } - }, - { - "name": "parent", - "in": "query", - "description": "List glossary terms filtered by children of glossary term identified by Id given in `parent` parameter.", - "schema": { - "type": "string", - "example": "children,relatedTerms,reviewers,owner,tags,usageCount" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "children,relatedTerms,reviewers,owner,tags,usageCount" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number glossary terms returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of glossary terms before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of glossary terms after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/pipelines/{fqn}/status" : { + "get" : { + "tags" : [ "Pipelines" ], + "summary" : "List pipeline status", + "description" : "Get a list of pipeline status.parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listPipelineStatuses", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the pipeline", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "startTs", + "in" : "query", + "description" : "Filter pipeline statues after the given start timestamp", + "required" : true, + "schema" : { + "type" : "number" } - ], - "responses": { - "200": { - "description": "List of glossary terms", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GlossaryTermList" + }, { + "name" : "endTs", + "in" : "query", + "description" : "Filter pipeline statues before the given end timestamp", + "required" : true, + "schema" : { + "type" : "number" + } + } ], + "responses" : { + "200" : { + "description" : "List of pipeline statuses.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestCaseList" } } } } } }, - "put": { - "tags": ["Glossaries"], - "summary": "Create or update a glossary term", - "description": "Create a new glossary term, if it does not exist or update an existing glossary term.", - "operationId": "createOrUpdateGlossaryTerm", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGlossaryTerm" + "put" : { + "tags" : [ "Pipelines" ], + "summary" : "Add status data", + "description" : "Add status data to the pipeline.", + "operationId" : "addStatusData", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the pipeline", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineStatus" } } } }, - "responses": { - "200": { - "description": "The glossary", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GlossaryTerm" + "responses" : { + "200" : { + "description" : "The pipeline with a the new status", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Pipeline" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/pipelines/{fqn}/status/{timestamp}" : { + "delete" : { + "tags" : [ "Pipelines" ], + "summary" : "Delete pipeline status", + "description" : "Delete pipeline status for a pipeline.", + "operationId" : "DeletePipelineStatus", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the pipeline", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "timestamp", + "in" : "path", + "description" : "Timestamp of the pipeline status", + "required" : true, + "schema" : { + "type" : "integer", + "format" : "int64" + } + } ], + "responses" : { + "200" : { + "description" : "Successfully deleted the PipelineStatus", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Pipeline" + } + } + } + } + } + } + }, + "/v1/pipelines/{id}" : { + "get" : { + "tags" : [ "Pipelines" ], + "summary" : "Get a pipeline by Id", + "description" : "Get a pipeline by `Id`.", + "operationId" : "getPipelineWithID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tasks,pipelineStatus,followers,tags,extension,scheduleInterval,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The pipeline", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Pipeline" + } + } + } + }, + "404" : { + "description" : "Pipeline for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Pipelines" ], + "summary" : "Delete a pipeline by Id", + "description" : "Delete a pipeline by `Id`.", + "operationId" : "deletePipeline", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Pipeline for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Pipelines" ], + "summary" : "Update a pipeline", + "description" : "Update an existing pipeline using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchPipeline", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } } } - }, - "post": { - "tags": ["Glossaries"], - "summary": "Create a glossary term", - "description": "Create a new glossary term.", - "operationId": "createGlossaryTerm", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGlossaryTerm" + } + }, + "/v1/pipelines/{id}/followers" : { + "put" : { + "tags" : [ "Pipelines" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as follower of this pipeline", + "operationId" : "addFollower_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" } } } }, - "responses": { - "200": { - "description": "The glossary term", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GlossaryTerm" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "Pipeline for instance {id} is not found" + } + } + } + }, + "/v1/pipelines/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Pipelines" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the pipeline.", + "operationId" : "deleteFollower_3", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } - }, - "400": { - "description": "Bad request" } } } }, - "/v1/glossaryTerms/name/{fqn}": { - "get": { - "tags": ["Glossaries"], - "summary": "Get a glossary term by fully qualified name", - "description": "Get a glossary term by `fullyQualifiedName`.", - "operationId": "getGlossaryTermByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the glossary term", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "children,relatedTerms,reviewers,owner,tags,usageCount" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/pipelines/{id}/versions" : { + "get" : { + "tags" : [ "Pipelines" ], + "summary" : "List pipeline versions", + "description" : "Get a list of all the versions of a pipeline identified by `Id`", + "operationId" : "listAllPipelineVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "The glossary term", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" + } ], + "responses" : { + "200" : { + "description" : "List of pipeline versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } - }, - "404": { - "description": "Glossary for instance {fqn} is not found" } } - }, - "delete": { - "tags": ["Glossaries"], - "summary": "Delete a glossary term by fully qualified name", - "description": "Delete a glossary term by `fullyQualifiedName`.", - "operationId": "deleteGlossaryTermByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the glossary term", - "required": true, - "schema": { - "type": "string" - } + } + }, + "/v1/pipelines/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Pipelines" ], + "summary" : "Get a version of the pipeline", + "description" : "Get a version of the pipeline by given `Id`", + "operationId" : "getSpecificPipelineVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "glossaryTerm for instance {fqn} is not found" + }, { + "name" : "version", + "in" : "path", + "description" : "Pipeline version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "pipeline", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Pipeline" + } + } + } + }, + "404" : { + "description" : "Pipeline for instance {id} and version {version} is not found" } } } }, - "/v1/glossaryTerms/restore": { - "put": { - "tags": ["Glossaries"], - "summary": "Restore a soft deleted glossary term", - "description": "Restore a soft deleted glossary term.", - "operationId": "restore_11", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/pipelines/{id}/vote" : { + "put" : { + "tags" : [ "Pipelines" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_11", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Chart ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GlossaryTerm" - } + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/policies" : { + "get" : { + "tags" : [ "Policies" ], + "summary" : "List policies", + "description" : "Get a list of policies. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listPolicies", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,location,teams,roles" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number policies returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of policies before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of policies after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of policies", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PolicyList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Policies" ], + "summary" : "Create or update a policy", + "description" : "Create a new policy, if it does not exist or update an existing policy.", + "operationId" : "createOrUpdatePolicy", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePolicy" } } } - } - } - }, - "/v1/glossaryTerms/{id}": { - "get": { - "tags": ["Glossaries"], - "summary": "Get a glossary term by Id", - "description": "Get a glossary term by `Id`.", - "operationId": "getGlossaryTermByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the glossary term", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "children,relatedTerms,reviewers,owner,tags,usageCount" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The glossary term", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" + }, + "responses" : { + "200" : { + "description" : "The policy", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Policy" } } } }, - "404": { - "description": "Glossary for instance {id} is not found" + "400" : { + "description" : "Bad request" } } }, - "delete": { - "tags": ["Glossaries"], - "summary": "Delete a glossary term by Id", - "description": "Delete a glossary term by `Id`.", - "operationId": "delete", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the glossary term", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "glossaryTerm for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Glossaries"], - "summary": "Update a glossary term", - "description": "Update an existing glossary term using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchGlossaryTerm", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the glossary term", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "Policies" ], + "summary" : "Create a policy", + "description" : "Create a new policy.", + "operationId" : "createPolicy", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePolicy" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "The policy", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Policy" + } + } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/glossaryTerms/{id}/versions": { - "get": { - "tags": ["Glossaries"], - "summary": "List glossary term versions", - "description": "Get a list of all the versions of a glossary terms identified by `id`", - "operationId": "listAllGlossaryTermVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the glossary term", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "List of glossary term versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + "/v1/policies/functions" : { + "get" : { + "tags" : [ "Policies" ], + "summary" : "Get list of policy functions used in authoring conditions in policy rules.", + "description" : "Get list of policy functions used in authoring conditions in policy rules.", + "operationId" : "listPolicyFunctions", + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResultListFunction" } } } @@ -8301,1469 +13475,2454 @@ } } }, - "/v1/glossaryTerms/{id}/versions/{version}": { - "get": { - "tags": ["Glossaries"], - "summary": "Get a version of the glossary term", - "description": "Get a version of the glossary term by given `Id`", - "operationId": "getSpecificGlossaryTermVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the glossary term", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "glossary term version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/policies/name/{fqn}" : { + "get" : { + "tags" : [ "Policies" ], + "summary" : "Get a policy by fully qualified name", + "description" : "Get a policy by fully qualified name.", + "operationId" : "getPolicyByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the policy", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,location,teams,roles" } - ], - "responses": { - "200": { - "description": "glossaries", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Glossary" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The policy", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Policy" } } } }, - "404": { - "description": "Glossary for instance {id} and version {version} is not found" + "404" : { + "description" : "Policy for instance {fqn} is not found" } } - } - }, - "/v1/lineage": { - "put": { - "tags": ["Lineage"], - "summary": "Add a lineage edge", - "description": "Add a lineage edge with from entity as upstream node and to entity as downstream node.", - "operationId": "addLineageEdge", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddLineage" - } - } - } - }, - "responses": { - "404": { - "description": "Entity for instance {id} is not found" + }, + "delete" : { + "tags" : [ "Policies" ], + "summary" : "Delete a policy by fully qualified name", + "description" : "Delete a policy by `fullyQualifiedName`.", + "operationId" : "deletePolicyByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - } - } - }, - "/v1/lineage/{entity}/name/{fqn}": { - "get": { - "tags": ["Lineage"], - "summary": "Get lineage by fully qualified name", - "description": "Get lineage details for an entity identified by fully qualified name.", - "operationId": "getLineageByFQN", - "parameters": [ - { - "name": "entity", - "in": "path", - "description": "Entity type for which lineage is requested", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the entity that uniquely identifies an entity", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "upstreamDepth", - "in": "query", - "description": "Upstream depth of lineage (default=1, min=0, max=3)", - "schema": { - "maximum": 3, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "downstreamDepth", - "in": "query", - "description": "Upstream depth of lineage (default=1, min=0, max=3)", - "schema": { - "maximum": 3, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 1 - } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the policy", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "Entity lineage", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityLineage" - } - } - } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Entity for instance {fqn} is not found" + "404" : { + "description" : "policy for instance {fqn} is not found" } } } }, - "/v1/lineage/{entity}/{id}": { - "get": { - "tags": ["Lineage"], - "summary": "Get lineage by Id", - "description": "Get lineage details for an entity identified by `Id`.", - "operationId": "getLineage", - "parameters": [ - { - "name": "entity", - "in": "path", - "description": "Entity type for which lineage is requested", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the entity", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "upstreamDepth", - "in": "query", - "description": "Upstream depth of lineage (default=1, min=0, max=3)", - "schema": { - "maximum": 3, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "downstreamDepth", - "in": "query", - "description": "Upstream depth of lineage (default=1, min=0, max=3)", - "schema": { - "maximum": 3, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 1 - } - } - ], - "responses": { - "200": { - "description": "Entity lineage", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityLineage" - } - } - } - }, - "404": { - "description": "Entity for instance {id} is not found" - } - } - } - }, - "/v1/lineage/{fromEntity}/{fromId}/{toEntity}/{toId}": { - "delete": { - "tags": ["Lineage"], - "summary": "Delete a lineage edge", - "description": "Delete a lineage edge with from entity as upstream node and to entity as downstream node.", - "operationId": "deleteLineageEdge", - "parameters": [ - { - "name": "fromEntity", - "in": "path", - "description": "Entity type of upstream entity of the edge", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "fromId", - "in": "path", - "description": "Entity id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "toEntity", - "in": "path", - "description": "Entity type for downstream entity of the edge", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "toId", - "in": "path", - "description": "Entity id", - "required": true, - "schema": { - "type": "string" + "/v1/policies/resources" : { + "get" : { + "tags" : [ "Policies" ], + "summary" : "Get list of policy resources used in authoring a policy", + "description" : "Get list of policy resources used in authoring a policy.", + "operationId" : "listPolicyResources", + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ResultListResourceDescriptor" + } + } } } - ], - "responses": { - "404": { - "description": "Entity for instance {fromId} is not found" - } } } }, - "/v1/metadata/types": { - "get": { - "tags": ["Metadata"], - "summary": "List types", - "description": "Get a list of types. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listTypes", - "parameters": [ - { - "name": "category", - "in": "query", - "description": "Filter types by metadata type category.", - "schema": { - "type": "string", - "example": "Property, Entity" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number types returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of types before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of types after this cursor", - "schema": { - "type": "string" + "/v1/policies/restore" : { + "put" : { + "tags" : [ "Policies" ], + "summary" : "Restore a soft deleted policy", + "description" : "Restore a soft deleted policy.", + "operationId" : "restore_17", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - ], - "responses": { - "200": { - "description": "List of types", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TypeList" - } - } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Policy ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Policy" + } + } + } + } + } + } + }, + "/v1/policies/validation/condition/{expression}" : { + "get" : { + "tags" : [ "Policies" ], + "summary" : "Validate a given condition", + "description" : "Validate a given condition expression used in authoring rules.", + "operationId" : "validateCondition_1", + "parameters" : [ { + "name" : "expression", + "in" : "path", + "description" : "Expression of validating rule", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "204" : { + "description" : "No value is returned" + }, + "400" : { + "description" : "Invalid expression" + } + } + } + }, + "/v1/policies/{id}" : { + "get" : { + "tags" : [ "Policies" ], + "summary" : "Get a policy by id", + "description" : "Get a policy by `Id`.", + "operationId" : "getPolicyByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the policy", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,location,teams,roles" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The policy", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Policy" + } + } + } + }, + "404" : { + "description" : "Policy for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Policies" ], + "summary" : "Delete a policy by Id", + "description" : "Delete a policy by `Id`.", + "operationId" : "deletePolicy", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the policy", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "policy for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Policies" ], + "summary" : "Update a policy", + "description" : "Update an existing policy using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchPolicy", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the policy", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - } - }, - "put": { - "tags": ["Metadata"], - "summary": "Create or update a type", - "description": "Create a new type, if it does not exist or update an existing type.", - "operationId": "createOrUpdate", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateType" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/policies/{id}/versions" : { + "get" : { + "tags" : [ "Policies" ], + "summary" : "List policy versions", + "description" : "Get a list of all the versions of a policy identified by `id`", + "operationId" : "listAllPolicyVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the policy", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of policy versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/policies/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Policies" ], + "summary" : "Get a version of the policy by Id", + "description" : "Get a version of the policy by given `Id`", + "operationId" : "getSpecificPolicyVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the policy", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "policy version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "policy", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Policy" + } + } + } + }, + "404" : { + "description" : "Policy for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/queries" : { + "get" : { + "tags" : [ "Queries" ], + "summary" : "Get a list of Queries", + "description" : "Get a list of queries. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listQueries", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,users,votes,tags,queryUsedIn" + } + }, { + "name" : "entityId", + "in" : "query", + "description" : "UUID of the entity for which to list the Queries", + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter Queries by service Fully Qualified Name", + "schema" : { + "type" : "string" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number queries returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of queries before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of queries after this cursor", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Get List of queries", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/QueryList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Queries" ], + "summary" : "Create or update a query", + "description" : "Create a query, if it does not exist. If a query already exists, update the query.", + "operationId" : "createOrUpdateQuery", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateQuery" } } } }, - "responses": { - "200": { - "description": "The type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Type" + "responses" : { + "200" : { + "description" : "The query", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Metadata"], - "summary": "Create a type", - "description": "Create a new type.", - "operationId": "createType", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateType" + "post" : { + "tags" : [ "Queries" ], + "summary" : "Create a query", + "description" : "Create a query under an existing entity.", + "operationId" : "createQuery", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateQuery" } } } }, - "responses": { - "200": { - "description": "The type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Type" + "responses" : { + "200" : { + "description" : "The query", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/QueryList" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } } }, - "/v1/metadata/types/name/{name}": { - "get": { - "tags": ["Metadata"], - "summary": "Get a type by name", - "description": "Get a type by name.", - "operationId": "getTypeByName", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the type", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "customProperties" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/queries/name/{fqn}" : { + "get" : { + "tags" : [ "Queries" ], + "summary" : "Get a query by name", + "description" : "Get a query by fully qualified table name.", + "operationId" : "getQueryFqn", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the query", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,users,votes,tags,queryUsedIn" } - ], - "responses": { - "200": { - "description": "The type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Type" + } ], + "responses" : { + "200" : { + "description" : "query", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" } } } }, - "404": { - "description": "Type for instance {name} is not found" + "404" : { + "description" : "Query for instance {id} is not found" } } }, - "delete": { - "tags": ["Metadata"], - "summary": "Delete a type by name", - "description": "Delete a type by `name`.", - "operationId": "deleteTypeByName", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the type", - "required": true, - "schema": { - "type": "string" - } + "delete" : { + "tags" : [ "Queries" ], + "summary" : "Delete a query", + "description" : "Delete a query by `fullyQualifiedName`.", + "operationId" : "deleteQueryByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the location", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "type for instance {name} is not found" + "404" : { + "description" : "Query for instance {fqn} is not found" } } } }, - "/v1/metadata/types/{id}": { - "get": { - "tags": ["Metadata"], - "summary": "Get a type", - "description": "Get a type by `id`.", - "operationId": "getTypeByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the type", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "customProperties" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/queries/restore" : { + "put" : { + "tags" : [ "Queries" ], + "summary" : "Restore a soft deleted Query", + "description" : "Restore a soft deleted Query.", + "operationId" : "restore_18", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - ], - "responses": { - "200": { - "description": "The type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Type" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Query ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" } } } - }, - "404": { - "description": "Type for instance {id} is not found" } } - }, - "put": { - "tags": ["Metadata"], - "summary": "Add or update a Property to an entity", - "description": "Add or update a property to an entity type. Properties can only be added to entity type and not property type.", - "operationId": "addProperty", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the type", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + } + }, + "/v1/queries/{id}" : { + "get" : { + "tags" : [ "Queries" ], + "summary" : "Get a query", + "description" : "Get a Query by `id`", + "operationId" : "getQueryById", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "query Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomProperty" - } - } - } - }, - "responses": { - "200": { - "description": "OK" + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,users,votes,tags,queryUsedIn" + } + } ], + "responses" : { + "200" : { + "description" : "query", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" + } + } + } }, - "404": { - "description": "type for instance {id} is not found" + "404" : { + "description" : "Query for instance {id} is not found" } } }, - "delete": { - "tags": ["Metadata"], - "summary": "Delete a type by id", - "description": "Delete a type by `id`.", - "operationId": "deleteType", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the type", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "type for instance {id} is not found" + "delete" : { + "tags" : [ "Queries" ], + "summary" : "Delete a query", + "description" : "Delete a query by `id`.", + "operationId" : "deleteQuery", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the query", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Query for instance {id} is not found" } } }, - "patch": { - "tags": ["Metadata"], - "summary": "Update a type", - "description": "Update an existing type using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" + "patch" : { + "tags" : [ "Queries" ], + "summary" : "Update a query", + "description" : "Update an existing query using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" }, - "operationId": "patchType", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the type", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + "operationId" : "patchQuery", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the query", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/metadata/types/{id}/versions": { - "get": { - "tags": ["Metadata"], - "summary": "List type versions", - "description": "Get a list of all the versions of a type identified by `id`", - "operationId": "listAllTypeVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the type", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/queries/{id}/followers" : { + "put" : { + "tags" : [ "Queries" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as follower of this model", + "operationId" : "addFollower_3", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Query", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" + } } } - ], - "responses": { - "200": { - "description": "List of type versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } + }, + "404" : { + "description" : "model for instance {id} is not found" } } } }, - "/v1/metadata/types/{id}/versions/{version}": { - "get": { - "tags": ["Metadata"], - "summary": "Get a version of the types", - "description": "Get a version of the type by given `id`", - "operationId": "getSpecificTypeVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the type", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "type version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/queries/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Queries" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the model.", + "operationId" : "deleteFollower_4", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Query", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "types", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Type" + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } - }, - "404": { - "description": "Type for instance {id} and version {version} is not found" } } } }, - "/v1/metrics": { - "get": { - "tags": ["Metrics (beta)"], - "summary": "List metrics", - "description": "Get a list of metrics. Use `fields` parameter to get only necessary fields.", - "operationId": "listMetrics", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,usageSummary" - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of metrics before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of metrics after this cursor", - "schema": { - "type": "string" + "/v1/queries/{id}/usage" : { + "put" : { + "tags" : [ "Queries" ], + "summary" : "Add query usage", + "description" : "Add query usage", + "operationId" : "addQueryUsage", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the query", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + } } } - ], - "responses": { - "200": { - "description": "List of metrics", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetricsList" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" } } } } } }, - "put": { - "tags": ["Metrics (beta)"], - "summary": "Create or update a metric", - "description": "Create a new metric, if it does not exist or update an existing metric.", - "operationId": "createOrUpdateMetric", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Metrics" + "delete" : { + "tags" : [ "Queries" ], + "summary" : "remove query used in", + "description" : "remove Query Used in", + "operationId" : "removeQueryUsedIn", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the query", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } } } } }, - "responses": { - "200": { - "description": "The metric", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Metrics" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" } } } - }, - "400": { - "description": "Bad request" } } - }, - "post": { - "tags": ["Metrics (beta)"], - "summary": "Create a metric", - "description": "Create a new metric.", - "operationId": "createMetric", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Metrics" + } + }, + "/v1/queries/{id}/usedBy" : { + "put" : { + "tags" : [ "Queries" ], + "summary" : "Populate Used By Field", + "description" : "Add query users", + "operationId" : "addQueryUsedBy", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the query", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } } } } }, - "responses": { - "200": { - "description": "The metric", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Metrics" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" } } } - }, - "400": { - "description": "Bad request" } } } }, - "/v1/metrics/{id}": { - "get": { - "tags": ["Metrics (beta)"], - "summary": "Get a metric by Id", - "description": "Get a metric by `Id`.", - "operationId": "getMetricByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the metric", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,usageSummary" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/queries/{id}/users" : { + "put" : { + "tags" : [ "Queries" ], + "summary" : "Add query users", + "description" : "Add query users", + "operationId" : "addQueryUsers", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the query", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } } } - ], - "responses": { - "200": { - "description": "The metrics", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Metrics" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" } } } - }, - "404": { - "description": "Metrics for instance {id} is not found" } } } }, - "/v1/mlmodels": { - "get": { - "tags": ["ML Models"], - "summary": "List ML models", - "description": "Get a list of mlmodels, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listMlModels", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,dashboard,followers,tags,usageSummary,extension" - } - }, - { - "name": "service", - "in": "query", - "description": "Filter MlModels by service name", - "schema": { - "type": "string", - "example": "airflow" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number models returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of models before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of models after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/queries/{id}/versions" : { + "get" : { + "tags" : [ "Queries" ], + "summary" : "Get List of all query versions", + "description" : "Get a list of all the versions of a query identified by `id`", + "operationId" : "listAllQueryVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Query Id", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of models", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModelList" + } ], + "responses" : { + "200" : { + "description" : "List of query versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } } } - }, - "put": { - "tags": ["ML Models"], - "summary": "Create or update an ML model", - "description": "Create a new ML model, if it does not exist or update an existing model.", - "operationId": "createOrUpdateMlModel", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMlModel" - } - } + } + }, + "/v1/queries/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Queries" ], + "summary" : "Get a specific version of the query", + "description" : "Get a version of the query by given `id`", + "operationId" : "getSpecificQueryVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Query Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - }, - "responses": { - "200": { - "description": "The model", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModel" + }, { + "name" : "version", + "in" : "path", + "description" : "Query version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "query", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Query" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "query for instance {id} and version {version} is not found" } } - }, - "post": { - "tags": ["ML Models"], - "summary": "Create an ML model", - "description": "Create a new ML model.", - "operationId": "createMlModel", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMlModel" + } + }, + "/v1/queries/{id}/vote" : { + "put" : { + "tags" : [ "Queries" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_12", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" } } } }, - "responses": { - "200": { - "description": "ML Model", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModel" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "model for instance {id} is not found" } } } }, - "/v1/mlmodels/name/{fqn}": { - "get": { - "tags": ["ML Models"], - "summary": "Get an ML model by fully qualified name", - "description": "Get an ML model by fully qualified name.", - "operationId": "getMlModelByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of ML Model", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,dashboard,followers,tags,usageSummary,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/reports" : { + "get" : { + "tags" : [ "Reports (beta)" ], + "summary" : "List reports", + "description" : "Get a list of reports. Use `fields` parameter to get only necessary fields.", + "operationId" : "listReports", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,usageSummary" } - ], - "responses": { - "200": { - "description": "The model", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModel" + } ], + "responses" : { + "200" : { + "description" : "List of reports", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ReportList" } } } - }, - "404": { - "description": "Model for instance {fqn} is not found" } } }, - "delete": { - "tags": ["ML Models"], - "summary": "Delete a ML model by fully qualified name", - "description": "Delete an ML model by `fullyQualifiedName`.", - "operationId": "deleteMlModelByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Name of the ML Model", - "required": true, - "schema": { - "type": "string" + "put" : { + "tags" : [ "Reports (beta)" ], + "summary" : "Create or update a report", + "description" : "Create a new report, it it does not exist or update an existing report.", + "operationId" : "createOrUpdateReport", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Report" + } } } - ], - "responses": { - "200": { - "description": "OK" + }, + "responses" : { + "200" : { + "description" : "The report", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Report" + } + } + } }, - "404": { - "description": "model for instance {fqn} is not found" + "400" : { + "description" : "Bad request" } } - } - }, - "/v1/mlmodels/restore": { - "put": { - "tags": ["ML Models"], - "summary": "Restore a soft deleted ML model", - "description": "Restore a soft deleted ML Model.", - "operationId": "restore_12", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + }, + "post" : { + "tags" : [ "Reports (beta)" ], + "summary" : "Create a report", + "description" : "Create a new report.", + "operationId" : "getReportByFQN", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Report" } } } }, - "responses": { - "200": { - "description": "Successfully restored the MlModel ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModel" + "responses" : { + "200" : { + "description" : "The report", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Report" } } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/mlmodels/{id}": { - "get": { - "tags": ["ML Models"], - "summary": "Get an ML model by Id", - "description": "Get an ML model by `Id`.", - "operationId": "getMlModelByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,dashboard,followers,tags,usageSummary,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/reports/{id}" : { + "get" : { + "tags" : [ "Reports (beta)" ], + "summary" : "Get a report by Id", + "description" : "Get a report by `Id`.", + "operationId" : "getReportByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the report", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,usageSummary" } - ], - "responses": { - "200": { - "description": "The model", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModel" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The report", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Report" } } } }, - "404": { - "description": "Model for instance {id} is not found" + "404" : { + "description" : "Report for instance {id} is not found" } } - }, - "delete": { - "tags": ["ML Models"], - "summary": "Delete an ML model by Id", - "description": "Delete an ML model by `Id`.", - "operationId": "deleteMlModel", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the ML Model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + } + }, + "/v1/reports/{id}/vote" : { + "put" : { + "tags" : [ "Reports (beta)" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_13", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } + } + } + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/roles" : { + "get" : { + "tags" : [ "Roles" ], + "summary" : "List roles", + "description" : "Get a list of roles. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listRoles", + "parameters" : [ { + "name" : "default", + "in" : "query", + "description" : "List only default role(s)", + "schema" : { + "type" : "boolean", + "example" : true + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "policies,teams,users" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number tables returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of tables before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of tables after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of roles", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RoleList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Roles" ], + "summary" : "Update role", + "description" : "Create or Update a role.", + "operationId" : "createOrUpdateRole", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateRole" + } } } - ], - "responses": { - "200": { - "description": "OK" + }, + "responses" : { + "200" : { + "description" : "The role ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Role" + } + } + } }, - "404": { - "description": "model for instance {id} is not found" + "400" : { + "description" : "Bad request" } - } - }, - "patch": { - "tags": ["ML Models"], - "summary": "Update an ML model", - "description": "Update an existing ML model using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchMlModel", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + }, + "post" : { + "tags" : [ "Roles" ], + "summary" : "Create a role", + "description" : "Create a new role.", + "operationId" : "createRole", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateRole" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "The role", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Role" + } + } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/mlmodels/{id}/followers": { - "put": { - "tags": ["ML Models"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as follower of this model", - "operationId": "addFollower", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/roles/name/{name}" : { + "get" : { + "tags" : [ "Roles" ], + "summary" : "Get a role by name", + "description" : "Get a role by `name`.", + "operationId" : "getRoleByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the role", + "required" : true, + "schema" : { + "type" : "string" } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "uuid" - } - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "policies,teams,users" } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The role", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Role" } } } }, - "404": { - "description": "model for instance {id} is not found" + "404" : { + "description" : "Role for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Roles" ], + "summary" : "Delete a role", + "description" : "Delete a role by given `name`.", + "operationId" : "deleteRoleByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the role", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Role for instance {name} is not found" } } } }, - "/v1/mlmodels/{id}/followers/{userId}": { - "delete": { - "tags": ["ML Models"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the model.", - "operationId": "deleteFollower_1", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/roles/restore" : { + "put" : { + "tags" : [ "Roles" ], + "summary" : "Restore a soft deleted role", + "description" : "Restore a soft deleted role.", + "operationId" : "restore_29", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } - }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Role. ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Role" + } + } + } + } + } + } + }, + "/v1/roles/{id}" : { + "get" : { + "tags" : [ "Roles" ], + "summary" : "Get a role by id", + "description" : "Get a role by `id`.", + "operationId" : "getRoleByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the role", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "policies,teams,users" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The role", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Role" + } + } + } + }, + "404" : { + "description" : "Role for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Roles" ], + "summary" : "Delete a role", + "description" : "Delete a role by given `id`.", + "operationId" : "deleteRole", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the role", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Role for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Roles" ], + "summary" : "Update a role", + "description" : "Update an existing role with JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchRole", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the role", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/roles/{id}/versions" : { + "get" : { + "tags" : [ "Roles" ], + "summary" : "List role versions", + "description" : "Get a list of all the versions of a role identified by `id`", + "operationId" : "listAllRoleVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the role", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of role versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/roles/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Roles" ], + "summary" : "Get a version of the role", + "description" : "Get a version of the role by given `id`", + "operationId" : "getSpecificRoleVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the role", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Role version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "role", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Role" + } + } + } + }, + "404" : { + "description" : "Role for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/search/aggregate" : { + "get" : { + "tags" : [ "Search" ], + "summary" : "Get aggregated fields", + "description" : "Get aggregated fields from entities.", + "operationId" : "getAggregateFields", + "parameters" : [ { + "name" : "index", + "in" : "query", + "schema" : { + "type" : "string", + "default" : "table_search_index" + } + }, { + "name" : "field", + "in" : "query", + "description" : "Field in an entity.", + "schema" : { + "type" : "string" + } + }, { + "name" : "value", + "in" : "query", + "description" : "value for searching in aggregation", + "schema" : { + "type" : "string", + "default" : "" + } + }, { + "name" : "q", + "in" : "query", + "description" : "Search Query Text, Pass *text* for substring match; Pass without wildcards for exact match.
1. For listing all tables or topics pass q=*
2. For search tables or topics pass q=*search_term*
3. For searching field names such as search by column_name pass q=column_names:address
4. For searching by tag names pass q=tags:user.email
5. When user selects a filter pass q=query_text AND tags:user.email AND platform:MYSQL
6. Search with multiple values of same filter q=tags:user.email AND tags:user.address
logic operators such as AND and OR must be in uppercase ", + "required" : true, + "schema" : { + "type" : "string", + "default" : "*" + } + }, { + "name" : "size", + "in" : "query", + "description" : "Size field to limit the no.of results returned, defaults to 10", + "schema" : { + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "deleted", + "in" : "query", + "schema" : { + "type" : "string", + "default" : "false" + } + } ], + "responses" : { + "200" : { + "description" : "Table Aggregate API", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Suggest" + } + } + } + } + } + } + }, + "/v1/search/fieldQuery" : { + "get" : { + "tags" : [ "Search" ], + "summary" : "Search entities", + "operationId" : "searchEntitiesWithSpecificFieldAndValue", + "parameters" : [ { + "name" : "fieldName", + "in" : "query", + "description" : "field name", + "schema" : { + "type" : "string" + } + }, { + "name" : "fieldValue", + "in" : "query", + "description" : "field value", + "schema" : { + "type" : "string" + } + }, { + "name" : "index", + "in" : "query", + "description" : "Search Index name, defaults to table_search_index", + "schema" : { + "type" : "string", + "default" : "table_search_index" + } + } ], + "responses" : { + "200" : { + "description" : "search response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchResponse" + } + } + } + } + } + } + }, + "/v1/search/query" : { + "get" : { + "tags" : [ "Search" ], + "summary" : "Search entities", + "description" : "Search entities using query test. Use query params `from` and `size` for pagination. Use `sort_field` to sort the results in `sort_order`.", + "operationId" : "searchEntitiesWithQuery", + "parameters" : [ { + "name" : "q", + "in" : "query", + "description" : "Search Query Text, Pass *text* for substring match; Pass without wildcards for exact match.
1. For listing all tables or topics pass q=*
2. For search tables or topics pass q=*search_term*
3. For searching field names such as search by column_name pass q=column_names:address
4. For searching by tag names pass q=tags:user.email
5. When user selects a filter pass q=query_text AND tags:user.email AND platform:MYSQL
6. Search with multiple values of same filter q=tags:user.email AND tags:user.address
logic operators such as AND and OR must be in uppercase ", + "required" : true, + "schema" : { + "type" : "string", + "default" : "*" + } + }, { + "name" : "index", + "in" : "query", + "description" : "ElasticSearch Index name, defaults to table_search_index", + "schema" : { + "type" : "string", + "default" : "table_search_index" + } + }, { + "name" : "deleted", + "in" : "query", + "description" : "Filter documents by deleted param. By default deleted is false", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "from", + "in" : "query", + "description" : "From field to paginate the results, defaults to 0", + "schema" : { + "type" : "integer", + "format" : "int32", + "default" : 0 + } + }, { + "name" : "size", + "in" : "query", + "description" : "Size field to limit the no.of results returned, defaults to 10", + "schema" : { + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "sort_field", + "in" : "query", + "description" : "Sort the search results by field, available fields to sort weekly_stats , daily_stats, monthly_stats, last_updated_timestamp", + "schema" : { + "type" : "string", + "default" : "_score" + } + }, { + "name" : "sort_order", + "in" : "query", + "description" : "Sort order asc for ascending or desc for descending, defaults to desc", + "schema" : { + "type" : "string", + "default" : "desc" + } + }, { + "name" : "track_total_hits", + "in" : "query", + "description" : "Track Total Hits", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "query_filter", + "in" : "query", + "description" : "Elasticsearch query that will be combined with the query_string query generator from the `query` argument", + "schema" : { + "type" : "string" + } + }, { + "name" : "post_filter", + "in" : "query", + "description" : "Elasticsearch query that will be used as a post_filter", + "schema" : { + "type" : "string" + } + }, { + "name" : "fetch_source", + "in" : "query", + "description" : "Get document body for each hit", + "schema" : { + "type" : "boolean", + "default" : true + } + }, { + "name" : "include_source_fields", + "in" : "query", + "description" : "Get only selected fields of the document body for each hit. Empty value will return all fields", + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } ], + "responses" : { + "200" : { + "description" : "search response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchResponse" + } + } + } + } + } + } + }, + "/v1/search/reindex/stream/status" : { + "get" : { + "tags" : [ "Search" ], + "summary" : "Get Stream Job Latest Status", + "description" : "Stream Job Status", + "operationId" : "getStreamJobStatus", + "responses" : { + "200" : { + "description" : "Success" + }, + "404" : { + "description" : "Status not found" + } + } + } + }, + "/v1/search/sourceUrl" : { + "get" : { + "tags" : [ "Search" ], + "summary" : "Search entities", + "operationId" : "searchEntitiesWithSourceUrl", + "parameters" : [ { + "name" : "sourceUrl", + "in" : "query", + "description" : "source url", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "search response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchResponse" + } + } + } + } + } + } + }, + "/v1/search/suggest" : { + "get" : { + "tags" : [ "Search" ], + "summary" : "Suggest entities", + "description" : "Get suggested entities used for auto-completion.", + "operationId" : "getSuggestedEntities", + "parameters" : [ { + "name" : "q", + "in" : "query", + "description" : "Suggest API can be used to auto-fill the entities name while use is typing search text
1. To get suggest results pass q=us or q=user etc..
2. Do not add any wild-cards such as * like in search api
3. suggest api is a prefix suggestion
", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "index", + "in" : "query", + "schema" : { + "type" : "string", + "default" : "table_search_index" + } + }, { + "name" : "field", + "in" : "query", + "description" : "Field in object containing valid suggestions. Defaults to 'suggest`. All indices has a `suggest` field, only some indices have other `suggest_*` fields.", + "schema" : { + "type" : "string", + "default" : "suggest" + } + }, { + "name" : "size", + "in" : "query", + "description" : "Size field to limit the no.of results returned, defaults to 10", + "schema" : { + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "fetch_source", + "in" : "query", + "description" : "Get document body for each hit", + "schema" : { + "type" : "boolean", + "default" : true + } + }, { + "name" : "include_source_fields", + "in" : "query", + "description" : "Get only selected fields of the document body for each hit. Empty value will return all fields", + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "deleted", + "in" : "query", + "schema" : { + "type" : "boolean", + "default" : false + } + } ], + "responses" : { + "200" : { + "description" : "Table Suggestion API", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Suggest" + } + } + } + } + } + } + }, + "/v1/searchIndexes" : { + "get" : { + "tags" : [ "SearchIndex" ], + "summary" : "List searchIndexes", + "description" : "Get a list of SearchIndexes, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listSearchIndexes", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,extension,domain,dataProducts" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter SearchIndexes by service name", + "schema" : { + "type" : "string", + "example" : "ElasticSearchWestCoast" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number SearchIndexes returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of SearchIndexes before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of SearchIndexes after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of SearchIndexes", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndexList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "SearchIndex" ], + "summary" : "Update SearchIndex", + "description" : "Create a SearchIndex, it it does not exist or update an existing SearchIndex.", + "operationId" : "createOrUpdateSearchIndex", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateSearchIndex" + } } } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" + }, + "responses" : { + "200" : { + "description" : "The updated SearchIndex ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndex" } } } } } - } - }, - "/v1/mlmodels/{id}/versions": { - "get": { - "tags": ["ML Models"], - "summary": "List ML model versions", - "description": "Get a list of all the versions of an ML Model identified by `id`", - "operationId": "listAllMlModelVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "post" : { + "tags" : [ "SearchIndex" ], + "summary" : "Create a SearchIndex", + "description" : "Create a SearchIndex under an existing `service`.", + "operationId" : "createSearchIndex", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateSearchIndex" + } } } - ], - "responses": { - "200": { - "description": "List of Ml Model versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "200" : { + "description" : "The SearchIndex", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndex" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/searchIndexes/name/{fqn}" : { + "get" : { + "tags" : [ "SearchIndex" ], + "summary" : "Get a SearchIndex by fully qualified name", + "description" : "Get a SearchIndex by fully qualified name.", + "operationId" : "getSearchIndexByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,extension,domain,dataProducts" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The SearchIndex", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndex" } } } + }, + "404" : { + "description" : "SearchIndex for instance {fqn} is not found" + } + } + }, + "delete" : { + "tags" : [ "SearchIndex" ], + "summary" : "Delete a SearchIndex by fully qualified name", + "description" : "Delete a SearchIndex by `fullyQualifiedName`.", + "operationId" : "deleteSearchIndexByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "SearchIndex for instance {fqn} is not found" } } } }, - "/v1/mlmodels/{id}/versions/{version}": { - "get": { - "tags": ["ML Models"], - "summary": "Get a version of the ML model", - "description": "Get a version of the ML model by given `id`", - "operationId": "getSpecificMlModelVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/searchIndexes/restore" : { + "put" : { + "tags" : [ "SearchIndex" ], + "summary" : "Restore a soft deleted SearchIndex", + "description" : "Restore a soft deleted SearchIndex.", + "operationId" : "restore_19", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } - }, - { - "name": "version", - "in": "path", - "description": "ML Model version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the SearchIndex. ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndex" + } + } + } + } + } + } + }, + "/v1/searchIndexes/{id}" : { + "get" : { + "tags" : [ "SearchIndex" ], + "summary" : "Get a SearchIndex by id", + "description" : "Get a SearchIndex by `id`.", + "operationId" : "get_6", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,extension,domain,dataProducts" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The SearchIndex", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndex" + } + } + } + }, + "404" : { + "description" : "SearchIndex for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "SearchIndex" ], + "summary" : "Delete a SearchIndex by id", + "description" : "Delete a SearchIndex by `id`.", + "operationId" : "deleteSearchIndex", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "SearchIndex for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "SearchIndex" ], + "summary" : "Update a SearchIndex", + "description" : "Update an existing SearchIndex using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchSearchIndex", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "MlModel", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModel" - } - } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } - }, - "404": { - "description": "ML Model for instance {id} and version {version} is not found" } } } }, - "/v1/permissions": { - "get": { - "tags": ["Permissions"], - "summary": "Get permissions for logged in user", - "operationId": "getResourcePermissions", - "parameters": [ - { - "name": "user", - "in": "query", - "description": "Permission for user specified in this query param. If not specified, the user is defaulted to the logged in user", - "schema": { - "type": "string", - "example": "john" + "/v1/searchIndexes/{id}/followers" : { + "put" : { + "tags" : [ "SearchIndex" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as followed of this SearchIndex", + "operationId" : "addFollower_4", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" + } } } - ], - "responses": { - "200": { - "description": "Permissions for logged in user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcePermissionList" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } + }, + "404" : { + "description" : "SearchIndex for instance {id} is not found" } } } }, - "/v1/permissions/policies": { - "get": { - "tags": ["Permissions"], - "summary": "Get permissions for a set of policies", - "operationId": "getPermissionsForPolicies", - "parameters": [ - { - "name": "ids", - "in": "query", - "description": "List of policy of ids", - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } + "/v1/searchIndexes/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "SearchIndex" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the SearchIndex.", + "operationId" : "deleteFollower_5", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "Permissions for a set of policies", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcePermissionList" + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } @@ -9771,38 +15930,66 @@ } } }, - "/v1/permissions/{resource}": { - "get": { - "tags": ["Permissions"], - "summary": "Get permissions a given resource/entity type for logged in user", - "operationId": "getResourceTypePermission", - "parameters": [ - { - "name": "user", - "in": "query", - "description": "Permission for user specified in this query param. If not specified, the user is defaulted to the logged in user", - "schema": { - "type": "string", - "example": "john" + "/v1/searchIndexes/{id}/sampleData" : { + "get" : { + "tags" : [ "SearchIndex" ], + "summary" : "Get sample data", + "description" : "Get sample data from the SearchIndex.", + "operationId" : "getSampleData_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "Successfully obtained the SampleData for SearchIndex", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndex" + } + } } - }, - { - "name": "resource", - "in": "path", - "description": "Type of the resource", - "required": true, - "schema": { - "type": "string" + } + } + }, + "put" : { + "tags" : [ "SearchIndex" ], + "summary" : "Add sample data", + "description" : "Add sample data to the searchIndex.", + "operationId" : "addSampleData_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndexSampleData" + } } } - ], - "responses": { - "200": { - "description": "Permissions for logged in user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcePermissionList" + }, + "responses" : { + "200" : { + "description" : "The SearchIndex", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndex" } } } @@ -9810,47 +15997,29 @@ } } }, - "/v1/permissions/{resource}/name/{name}": { - "get": { - "tags": ["Permissions"], - "summary": "Get permissions for a given entity name for a logged in user", - "operationId": "getResourcePermissionByName", - "parameters": [ - { - "name": "user", - "in": "query", - "description": "Permission for user specified in this query param. If not specified, the user is defaulted to the logged in user", - "schema": { - "type": "string", - "example": "john" - } - }, - { - "name": "resource", - "in": "path", - "description": "Type of the resource", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the entity", - "required": true, - "schema": { - "type": "string" - } + "/v1/searchIndexes/{id}/versions" : { + "get" : { + "tags" : [ "SearchIndex" ], + "summary" : "List SearchIndex versions", + "description" : "Get a list of all the versions of a SearchIndex identified by `id`", + "operationId" : "listAllSearchIndexVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "Permissions for logged in user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcePermissionList" + } ], + "responses" : { + "200" : { + "description" : "List of SearchIndex versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } @@ -9858,1700 +16027,4458 @@ } } }, - "/v1/permissions/{resource}/{id}": { - "get": { - "tags": ["Permissions"], - "summary": "Get permissions for a given entity for a logged in user", - "operationId": "getResourcePermission", - "parameters": [ - { - "name": "user", - "in": "query", - "description": "Permission for user specified in this query param. If not specified, the user is defaulted to the logged in user", - "schema": { - "type": "string", - "example": "john" - } - }, - { - "name": "resource", - "in": "path", - "description": "Type of the resource", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the entity", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/searchIndexes/{id}/versions/{version}" : { + "get" : { + "tags" : [ "SearchIndex" ], + "summary" : "Get a version of the SearchIndex", + "description" : "Get a version of the SearchIndex by given `id`", + "operationId" : "getSpecificSearchIndexVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the SearchIndex", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "Permissions for logged in user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcePermissionList" + }, { + "name" : "version", + "in" : "path", + "description" : "SearchIndex version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "SearchIndex", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchIndex" } } } + }, + "404" : { + "description" : "SearchIndex for instance {id} and version {version} is not found" } } } }, - "/v1/pipelines": { - "get": { - "tags": ["Pipelines"], - "summary": "List pipelines", - "description": "Get a list of pipelines, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listPipelines", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tasks,pipelineStatus,followers,tags,extension,scheduleInterval" - } - }, - { - "name": "service", - "in": "query", - "description": "Filter pipelines by service name", - "schema": { - "type": "string", - "example": "airflow" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number pipelines returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of pipelines before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of pipelines after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/searchIndexes/{id}/vote" : { + "put" : { + "tags" : [ "SearchIndex" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_14", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of pipelines", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineList" - } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" } } } - } - }, - "put": { - "tags": ["Pipelines"], - "summary": "Create or update a pipeline", - "description": "Create a new pipeline, if it does not exist or update an existing pipeline.", - "operationId": "createOrUpdatePipeline", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePipeline" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/services/dashboardServices" : { + "get" : { + "tags" : [ "Dashboard Services" ], + "summary" : "List dashboard services", + "description" : "Get a list of dashboard services.", + "operationId" : "listDashboardsService", + "parameters" : [ { + "name" : "name", + "in" : "query", + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,domain" + } + }, { + "name" : "domain", + "in" : "query", + "description" : "Filter services by domain", + "schema" : { + "type" : "string", + "example" : "Marketing" + } + }, { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of dashboard services before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of dashboard services after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of dashboard service instances", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardServiceList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Update a dashboard service", + "description" : "Update an existing dashboard service identified by `Id`.", + "operationId" : "createOrUpdateDashboardService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDashboardService" } } } }, - "responses": { - "200": { - "description": "The pipeline", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pipeline" + "responses" : { + "200" : { + "description" : "Dashboard service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardService" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Pipelines"], - "summary": "Create a pipeline", - "description": "Create a new pipeline.", - "operationId": "createPipeline", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePipeline" + "post" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Create a dashboard service", + "description" : "Create a new dashboard service.", + "operationId" : "createDashboardService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDashboardService" } } } }, - "responses": { - "200": { - "description": "The pipeline", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pipeline" - } - } - } - }, - "400": { - "description": "Bad request" + "responses" : { + "200" : { + "description" : "Dashboard service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardService" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/services/dashboardServices/name/{name}" : { + "get" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Get dashboard service by name", + "description" : "Get a dashboard service by the service `name`.", + "operationId" : "getDashboardServiceByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the dashboard service", + "required" : true, + "schema" : { + "type" : "string" } - } - } - }, - "/v1/pipelines/name/{fqn}": { - "get": { - "tags": ["Pipelines"], - "summary": "Get a pipeline by fully qualified name", - "description": "Get a pipeline by fully qualified name.", - "operationId": "getPipelineByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the pipeline", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tasks,pipelineStatus,followers,tags,extension,scheduleInterval" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] } - ], - "responses": { - "200": { - "description": "The pipeline", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pipeline" + } ], + "responses" : { + "200" : { + "description" : "Dashboard service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardService" } } } }, - "404": { - "description": "Pipeline for instance {fqn} is not found" + "404" : { + "description" : "Dashboard service for instance {name} is not found" } } }, - "delete": { - "tags": ["Pipelines"], - "summary": "Delete a pipeline by fully qualified name", - "description": "Delete a pipeline by `fullyQualifiedName`.", - "operationId": "deletePipelineByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the pipeline", - "required": true, - "schema": { - "type": "string" - } + "delete" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Delete a dashboard service by name", + "description" : "Delete a Dashboard services by `name`. If dashboard (and charts) belong to the service, it can't be deleted.", + "operationId" : "deleteDashboardServiceByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "200": { - "description": "OK" + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the dashboard service", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Pipeline for instance {fqn} is not found" + "404" : { + "description" : "DashboardService service for instance {name} is not found" } } } }, - "/v1/pipelines/restore": { - "put": { - "tags": ["Pipelines"], - "summary": "Restore a soft deleted pipeline", - "description": "Restore a soft deleted pipeline.", - "operationId": "restore_13", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/services/dashboardServices/restore" : { + "put" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Restore a soft deleted dashboard service", + "description" : "Restore a soft deleted dashboard service.", + "operationId" : "restore_20", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Pipeline ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pipeline" - } - } + "responses" : { + "200" : { + "description" : "Successfully restored the Chart ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardService" + } + } + } + } + } + } + }, + "/v1/services/dashboardServices/{id}" : { + "get" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Get a dashboard service by Id", + "description" : "Get a dashboard service by `Id`.", + "operationId" : "getDashboardServiceByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Dashboard service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardService" + } + } + } + }, + "404" : { + "description" : "Dashboard service for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Delete a dashboard service by Id", + "description" : "Delete a Dashboard services. If dashboard (and charts) belong to the service, it can't be deleted.", + "operationId" : "deleteDashboardService", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "DashboardService service for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Update a dashboard service", + "description" : "Update an existing dashboard service using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDashboardService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/pipelines/{fqn}/status": { - "get": { - "tags": ["Pipelines"], - "summary": "List pipeline status", - "description": "Get a list of pipeline status.parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listPipelineStatuses", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the pipeline", - "required": true, - "schema": { - "type": "string" + "/v1/services/dashboardServices/{id}/testConnectionResult" : { + "put" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Add test connection result", + "description" : "Add test connection result to the service.", + "operationId" : "addTestConnectionResult", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestConnectionResult" + } } - }, - { - "name": "startTs", - "in": "query", - "description": "Filter pipeline statues after the given start timestamp", - "required": true, - "schema": { - "type": "number" + } + }, + "responses" : { + "200" : { + "description" : "Successfully updated the service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } } - }, - { - "name": "endTs", - "in": "query", - "description": "Filter pipeline statues before the given end timestamp", - "required": true, - "schema": { - "type": "number" + } + } + } + }, + "/v1/services/dashboardServices/{id}/versions" : { + "get" : { + "tags" : [ "Dashboard Services" ], + "summary" : "List dashboard service versions", + "description" : "Get a list of all the versions of a dashboard service identified by `Id`", + "operationId" : "listAllDashboardServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of dashboard service versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/services/dashboardServices/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Dashboard Services" ], + "summary" : "Get a version of the dashboard service", + "description" : "Get a version of the dashboard service by given `Id`", + "operationId" : "getSpecificDashboardServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the dashboard service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "dashboard service version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "dashboard service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DashboardService" + } + } + } + }, + "404" : { + "description" : "Dashboard service for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/services/databaseServices" : { + "get" : { + "tags" : [ "Database Services" ], + "summary" : "List database services", + "description" : "Get a list of database services.", + "operationId" : "listDatabaseServices", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "domain", + "in" : "query", + "description" : "Filter services by domain", + "schema" : { + "type" : "string", + "example" : "Marketing" + } + }, { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of database services before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of database services after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of database service instances", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseServiceList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Database Services" ], + "summary" : "Update database service", + "description" : "Update an existing or create a new database service.", + "operationId" : "createOrUpdateDatabaseService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDatabaseService" + } } } - ], - "responses": { - "200": { - "description": "List of pipeline statuses.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestCaseList" + }, + "responses" : { + "200" : { + "description" : "Database service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" } } } + }, + "400" : { + "description" : "Bad request" } } }, - "put": { - "tags": ["Pipelines"], - "summary": "Add status data", - "description": "Add status data to the pipeline.", - "operationId": "addStatusData", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the pipeline", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineStatus" + "post" : { + "tags" : [ "Database Services" ], + "summary" : "Create database service", + "description" : "Create a new database service.", + "operationId" : "createDatabaseService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateDatabaseService" } } } }, - "responses": { - "200": { - "description": "The pipeline with a the new status", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pipeline" + "responses" : { + "200" : { + "description" : "Database service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/services/databaseServices/name/{name}" : { + "get" : { + "tags" : [ "Database Services" ], + "summary" : "Get database service by name", + "description" : "Get a database service by the service `name`.", + "operationId" : "getDatabaseServiceByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the database service", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Database service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "Database service for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Database Services" ], + "summary" : "Delete a database service by name", + "description" : "Delete a database services by `name`. If databases (and tables) belong the service, it can't be deleted.", + "operationId" : "deleteDatabaseServiceByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the database service", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "DatabaseService service for instance {name} is not found" } } } }, - "/v1/pipelines/{fqn}/status/{timestamp}": { - "delete": { - "tags": ["Pipelines"], - "summary": "Delete pipeline status", - "description": "Delete pipeline status for a pipeline.", - "operationId": "DeletePipelineStatus", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the pipeline", - "required": true, - "schema": { - "type": "string" + "/v1/services/databaseServices/restore" : { + "put" : { + "tags" : [ "Database Services" ], + "summary" : "Restore a soft deleted database service", + "description" : "Restore a soft deleted database service.", + "operationId" : "restore_21", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } - }, - { - "name": "timestamp", - "in": "path", - "description": "Timestamp of the pipeline status", - "required": true, - "schema": { - "type": "integer", - "format": "int64" + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the DatabaseService.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } + } + } + } + } + }, + "/v1/services/databaseServices/{id}" : { + "get" : { + "tags" : [ "Database Services" ], + "summary" : "Get a database service", + "description" : "Get a database service by `Id`.", + "operationId" : "getDatabaseServiceByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Database service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } + } + }, + "404" : { + "description" : "Database service for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Database Services" ], + "summary" : "Delete a database service by Id", + "description" : "Delete a database services. If databases (and tables) belong the service, it can't be deleted.", + "operationId" : "deleteDatabaseService", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the database service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "DatabaseService service for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Database Services" ], + "summary" : "Update a database service", + "description" : "Update an existing database service using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchDatabaseService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "Successfully deleted the PipelineStatus", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pipeline" - } - } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/pipelines/{id}": { - "get": { - "tags": ["Pipelines"], - "summary": "Get a pipeline by Id", - "description": "Get a pipeline by `Id`.", - "operationId": "getPipelineWithID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/services/databaseServices/{id}/testConnectionResult" : { + "put" : { + "tags" : [ "Database Services" ], + "summary" : "Add test connection result", + "description" : "Add test connection result to the service.", + "operationId" : "addTestConnectionResult_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestConnectionResult" + } } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,tasks,pipelineStatus,followers,tags,extension,scheduleInterval" + } + }, + "responses" : { + "200" : { + "description" : "Successfully updated the service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + } + } + }, + "/v1/services/databaseServices/{id}/versions" : { + "get" : { + "tags" : [ "Database Services" ], + "summary" : "List database service versions", + "description" : "Get a list of all the versions of a database service identified by `Id`", + "operationId" : "listAllDatabaseServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of database service versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/services/databaseServices/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Database Services" ], + "summary" : "Get a version of the database service", + "description" : "Get a version of the database service by given `Id`", + "operationId" : "getSpecificDatabaseServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the database service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "database service version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "database service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } + } + }, + "404" : { + "description" : "Database service for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/services/messagingServices" : { + "get" : { + "tags" : [ "Messaging Services" ], + "summary" : "List messaging services", + "description" : "Get a list of messaging services. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listMessagingService", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,domain" + } + }, { + "name" : "domain", + "in" : "query", + "description" : "Filter services by domain", + "schema" : { + "type" : "string", + "example" : "Marketing" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit number services returned. (1 to 1000000, default 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of services before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of services after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of messaging services", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MessagingServiceList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Messaging Services" ], + "summary" : "Update messaging service", + "description" : "Create a new messaging service or Update an existing messaging service identified by `id`.", + "operationId" : "createOrUpdateMessagingService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMessagingService" + } } } - ], - "responses": { - "200": { - "description": "The pipeline", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pipeline" + }, + "responses" : { + "200" : { + "description" : "Messaging service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MessagingService" } } } }, - "404": { - "description": "Pipeline for instance {id} is not found" + "400" : { + "description" : "Bad request" } } }, - "delete": { - "tags": ["Pipelines"], - "summary": "Delete a pipeline by Id", - "description": "Delete a pipeline by `Id`.", - "operationId": "deletePipeline", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the pipeline", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Pipeline for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Pipelines"], - "summary": "Update a pipeline", - "description": "Update an existing pipeline using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchPipeline", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "Messaging Services" ], + "summary" : "Create a messaging service", + "description" : "Create a new messaging service.", + "operationId" : "createMessagingService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMessagingService" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "Messaging service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MessagingService" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/services/messagingServices/name/{name}" : { + "get" : { + "tags" : [ "Messaging Services" ], + "summary" : "Get messaging service by name", + "description" : "Get a messaging service by the service `name`.", + "operationId" : "getMessagingServiceByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the messaging service", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Messaging service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MessagingService" + } + } } + }, + "404" : { + "description" : "Messaging service for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Messaging Services" ], + "summary" : "Delete a messaging service by name", + "description" : "Delete a messaging service by `name`. If topics belong the service, it can't be deleted.", + "operationId" : "deleteMessagingServiceByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the messaging service", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "MessagingService service for instance {name} is not found" } } } }, - "/v1/pipelines/{id}/followers": { - "put": { - "tags": ["Pipelines"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as follower of this pipeline", - "operationId": "addFollower_1", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/services/messagingServices/restore" : { + "put" : { + "tags" : [ "Messaging Services" ], + "summary" : "Restore a soft deleted messaging service", + "description" : "Restore a soft deleted messaging service.", + "operationId" : "restore_22", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string" - } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the MessagingService ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MessagingService" + } + } + } + } + } + } + }, + "/v1/services/messagingServices/{id}" : { + "get" : { + "tags" : [ "Messaging Services" ], + "summary" : "Get a messaging service by Id", + "description" : "Get a messaging service by `Id`.", + "operationId" : "getMessagingServiceByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the messaging service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Messaging service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MessagingService" + } + } + } + }, + "404" : { + "description" : "Messaging service for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Messaging Services" ], + "summary" : "Delete a messaging service by Id", + "description" : "Delete a messaging service. If topics belong the service, it can't be deleted.", + "operationId" : "deleteMessagingService", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the messaging service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "MessagingService service for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Messaging Services" ], + "summary" : "Update a messaging service", + "description" : "Update an existing messaging service using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchMessagingService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the messaging service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" - } - } + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } - }, - "404": { - "description": "Pipeline for instance {id} is not found" } } } }, - "/v1/pipelines/{id}/followers/{userId}": { - "delete": { - "tags": ["Pipelines"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the pipeline.", - "operationId": "deleteFollower_2", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/services/messagingServices/{id}/testConnectionResult" : { + "put" : { + "tags" : [ "Messaging Services" ], + "summary" : "Add test connection result", + "description" : "Add test connection result to the service.", + "operationId" : "addTestConnectionResult_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestConnectionResult" + } } - }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + } + }, + "responses" : { + "200" : { + "description" : "Successfully updated the service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } + } + } + } + } + }, + "/v1/services/messagingServices/{id}/versions" : { + "get" : { + "tags" : [ "Messaging Services" ], + "summary" : "List messaging service versions", + "description" : "Get a list of all the versions of a messaging service identified by `id`", + "operationId" : "listAllMessagingServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the messaging service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of messaging service versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/services/messagingServices/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Messaging Services" ], + "summary" : "Get a version of the messaging service", + "description" : "Get a version of the messaging service by given `Id`", + "operationId" : "getSpecificMessagingServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the messaging service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "messaging service version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "messaging service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MessagingService" + } + } + } + }, + "404" : { + "description" : "Messaging service for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/services/metadataServices" : { + "get" : { + "tags" : [ "Metadata Services" ], + "summary" : "List metadata services", + "description" : "Get a list of metadata services.", + "operationId" : "listMetadataServices", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags" + } + }, { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of metadata services before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of metadata services after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of Metadata Service instances", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataServiceList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Metadata Services" ], + "summary" : "Update metadata service", + "description" : "Update an existing or create a new Metadata Service.", + "operationId" : "createOrUpdateMetadataService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMetadataService" + } } } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" + }, + "responses" : { + "200" : { + "description" : "Metadata Service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataService" } } } + }, + "400" : { + "description" : "Bad request" } } - } - }, - "/v1/pipelines/{id}/versions": { - "get": { - "tags": ["Pipelines"], - "summary": "List pipeline versions", - "description": "Get a list of all the versions of a pipeline identified by `Id`", - "operationId": "listAllPipelineVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "post" : { + "tags" : [ "Metadata Services" ], + "summary" : "Create metadata service", + "description" : "Create a new Metadata Service.", + "operationId" : "createMetadataService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMetadataService" + } } } - ], - "responses": { - "200": { - "description": "List of pipeline versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "200" : { + "description" : "Metadata Service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataService" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/services/metadataServices/name/{name}" : { + "get" : { + "tags" : [ "Metadata Services" ], + "summary" : "Get a metadata service by name", + "description" : "Get a Metadata Service by the service `name`.", + "operationId" : "getMetadataServiceByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the metadata service", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Metadata Service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataService" } } } + }, + "404" : { + "description" : "Metadata Service for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Metadata Services" ], + "summary" : "Delete a metadata service by name", + "description" : "Delete a metadata services by `name`. If some service belong the service, it can't be deleted.", + "operationId" : "deleteMetadataServiceByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the metadata service", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "MetadataService service for instance {name} is not found" } } } }, - "/v1/pipelines/{id}/versions/{version}": { - "get": { - "tags": ["Pipelines"], - "summary": "Get a version of the pipeline", - "description": "Get a version of the pipeline by given `Id`", - "operationId": "getSpecificPipelineVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/services/metadataServices/restore" : { + "put" : { + "tags" : [ "Metadata Services" ], + "summary" : "Restore a soft deleted metadata service.", + "description" : "Restore a soft deleted metadata service.", + "operationId" : "restore_23", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } - }, - { - "name": "version", - "in": "path", - "description": "Pipeline version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Table ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" + } + } + } + } + } + } + }, + "/v1/services/metadataServices/{id}" : { + "get" : { + "tags" : [ "Metadata Services" ], + "summary" : "Get a metadata service by Id", + "description" : "Get a Metadata Service by `Id`.", + "operationId" : "getMetadataServiceByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the metadata service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Metadata Service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataService" + } + } + } + }, + "404" : { + "description" : "Metadata Service for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Metadata Services" ], + "summary" : "Delete a metadata service by Id", + "description" : "Delete a metadata services. If some service belong the service, it can't be deleted.", + "operationId" : "deleteMetadataService", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the metadata service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "MetadataService service for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Metadata Services" ], + "summary" : "Update a metadata service", + "description" : "Update an existing Metadata service using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchMetadataService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the metadata service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "pipeline", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pipeline" - } - } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } - }, - "404": { - "description": "Pipeline for instance {id} and version {version} is not found" } } } }, - "/v1/policies": { - "get": { - "tags": ["Policies"], - "summary": "List policies", - "description": "Get a list of policies. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listPolicies", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,location,teams,roles" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number policies returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of policies before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of policies after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/services/metadataServices/{id}/testConnectionResult" : { + "put" : { + "tags" : [ "Metadata Services" ], + "summary" : "Add test connection result", + "description" : "Add test connection result to the service.", + "operationId" : "addTestConnectionResult_3", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestConnectionResult" + } } } - ], - "responses": { - "200": { - "description": "List of policies", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PolicyList" + }, + "responses" : { + "200" : { + "description" : "Successfully updated the service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" } } } } - } - }, - "put": { - "tags": ["Policies"], - "summary": "Create or update a policy", - "description": "Create a new policy, if it does not exist or update an existing policy.", - "operationId": "createOrUpdatePolicy", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePolicy" + } + } + }, + "/v1/services/metadataServices/{id}/versions" : { + "get" : { + "tags" : [ "Metadata Services" ], + "summary" : "List metadata service versions", + "description" : "Get a list of all the versions of a Metadata Service identified by `Id`", + "operationId" : "listAllMetadataServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the metadata service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of Metadata Service versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/services/metadataServices/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Metadata Services" ], + "summary" : "Get a version of the metadata service", + "description" : "Get a version of the Metadata Service by given `Id`", + "operationId" : "getSpecificMetadataServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the metadata service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Metadata Service version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "Metadata Service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MetadataService" + } + } + } + }, + "404" : { + "description" : "Metadata Service for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/services/mlmodelServices" : { + "get" : { + "tags" : [ "ML Model Services" ], + "summary" : "List ML model services", + "description" : "Get a list of mlModel services. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listMlModelService", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "domain", + "in" : "query", + "description" : "Filter services by domain", + "schema" : { + "type" : "string", + "example" : "Marketing" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit number services returned. (1 to 1000000, default 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of services before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of services after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of mlModel services", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModelServiceList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "ML Model Services" ], + "summary" : "Update ML model service", + "description" : "Create a new mlModel service or update an existing mlModel service identified by `Id`.", + "operationId" : "createOrUpdateMlModelService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMlModelService" } } } }, - "responses": { - "200": { - "description": "The policy", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" + "responses" : { + "200" : { + "description" : "MlModel service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModelService" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Policies"], - "summary": "Create a policy", - "description": "Create a new policy.", - "operationId": "createPolicy", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePolicy" + "post" : { + "tags" : [ "ML Model Services" ], + "summary" : "Create an ML model service", + "description" : "Create a new mlModel service.", + "operationId" : "createMlModelService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateMlModelService" } } } }, - "responses": { - "200": { - "description": "The policy", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" + "responses" : { + "200" : { + "description" : "MlModel service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModelService" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/services/mlmodelServices/name/{name}" : { + "get" : { + "tags" : [ "ML Model Services" ], + "summary" : "Get an ML model service by name", + "description" : "Get a mlModel service by the service `name`.", + "operationId" : "getMlModelServiceByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the ML Model service", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "MlModel service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModelService" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "MlModel service for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "ML Model Services" ], + "summary" : "Delete an ML model service by name", + "description" : "Delete a mlModel services by `name`. If mlModels (and tasks) belong to the service, it can't be deleted.", + "operationId" : "deleteMlModelServiceByName", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the ML Model service", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "MlModel service for instance {name} is not found" } } } }, - "/v1/policies/functions": { - "get": { - "tags": ["Policies"], - "summary": "Get list of policy functions used in authoring conditions in policy rules.", - "description": "Get list of policy functions used in authoring conditions in policy rules.", - "operationId": "listPolicyFunctions", - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResultListFunction" - } + "/v1/services/mlmodelServices/restore" : { + "put" : { + "tags" : [ "ML Model Services" ], + "summary" : "Restore a soft deleted ML model service", + "description" : "Restore a soft deleted Ml model service.", + "operationId" : "restore_24", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the MlModelService ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModelService" + } + } + } + } + } + } + }, + "/v1/services/mlmodelServices/{id}" : { + "get" : { + "tags" : [ "ML Model Services" ], + "summary" : "Get an ML model service by Id", + "description" : "Get a mlModel service by `Id`.", + "operationId" : "getMlModelServiceByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "MlModel service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModelService" + } + } + } + }, + "404" : { + "description" : "MlModel service for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "ML Model Services" ], + "summary" : "Delete an ML model service by Id", + "description" : "Delete a mlModel services. If mlModels (and tasks) belong to the service, it can't be deleted.", + "operationId" : "deleteMlModelService", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "MlModel service for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "ML Model Services" ], + "summary" : "Update an ML model service", + "description" : "Update an existing MlModelService service using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchMlModelService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } } } }, - "/v1/policies/name/{fqn}": { - "get": { - "tags": ["Policies"], - "summary": "Get a policy by fully qualified name", - "description": "Get a policy by fully qualified name.", - "operationId": "getPolicyByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the policy", - "required": true, - "schema": { - "type": "string" + "/v1/services/mlmodelServices/{id}/testConnectionResult" : { + "put" : { + "tags" : [ "ML Model Services" ], + "summary" : "Add test connection result", + "description" : "Add test connection result to the service.", + "operationId" : "addTestConnectionResult_4", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestConnectionResult" + } } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,location,teams,roles" + } + }, + "responses" : { + "200" : { + "description" : "Successfully updated the service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + } + } + }, + "/v1/services/mlmodelServices/{id}/versions" : { + "get" : { + "tags" : [ "ML Model Services" ], + "summary" : "List ML model service versions", + "description" : "Get a list of all the versions of a mlModel service identified by `Id`", + "operationId" : "listAllMlModelServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of mlModel service versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/services/mlmodelServices/{id}/versions/{version}" : { + "get" : { + "tags" : [ "ML Model Services" ], + "summary" : "Get a version of the ML model service", + "description" : "Get a version of the mlModel service by given `Id`", + "operationId" : "getSpecificMlModelService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the ML Model service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "mlModel service version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "mlModel service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MlModelService" + } + } + } + }, + "404" : { + "description" : "MlModel service for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/services/pipelineServices" : { + "get" : { + "tags" : [ "Pipeline Services" ], + "summary" : "List pipeline services", + "description" : "Get a list of pipeline services. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listPipelineService", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,domain" + } + }, { + "name" : "domain", + "in" : "query", + "description" : "Filter services by domain", + "schema" : { + "type" : "string", + "example" : "Marketing" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit number services returned. (1 to 1000000, default 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of services before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of services after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of pipeline services", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineServiceList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Update pipeline service", + "description" : "Create a new pipeline service or update an existing pipeline service identified by `id`.", + "operationId" : "createOrUpdatePipelineService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePipelineService" + } } } - ], - "responses": { - "200": { - "description": "The policy", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" + }, + "responses" : { + "200" : { + "description" : "Pipeline service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineService" } } } }, - "404": { - "description": "Policy for instance {fqn} is not found" + "400" : { + "description" : "Bad request" } } }, - "delete": { - "tags": ["Policies"], - "summary": "Delete a policy by fully qualified name", - "description": "Delete a policy by `fullyQualifiedName`.", - "operationId": "deletePolicyByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the policy", - "required": true, - "schema": { - "type": "string" + "post" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Create a pipeline service", + "description" : "Create a new pipeline service.", + "operationId" : "createPipelineService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePipelineService" + } } } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "policy for instance {fqn} is not found" + }, + "responses" : { + "200" : { + "description" : "Pipeline service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineService" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/services/pipelineServices/name/{fqn}" : { + "get" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Get pipeline service by fully qualified name", + "description" : "Get a pipeline service by the service `fullyQualifiedName`.", + "operationId" : "getPipelineServiceByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the pipeline service", + "required" : true, + "schema" : { + "type" : "string" } - } - } - }, - "/v1/policies/resources": { - "get": { - "tags": ["Policies"], - "summary": "Get list of policy resources used in authoring a policy", - "description": "Get list of policy resources used in authoring a policy.", - "operationId": "listPolicyResources", - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResultListResourceDescriptor" + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Pipeline service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineService" } } } + }, + "404" : { + "description" : "Pipeline service for instance {fqn} is not found" + } + } + }, + "delete" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Delete a pipeline service by fully qualified name", + "description" : "Delete a pipeline services by `fullyQualifiedName`. If pipelines (and tasks) belong to the service, it can't be deleted.", + "operationId" : "deletePipelineServiceByName", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the pipeline service", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Pipeline service for instance {fqn} is not found" } } } }, - "/v1/policies/restore": { - "put": { - "tags": ["Policies"], - "summary": "Restore a soft deleted policy", - "description": "Restore a soft deleted policy.", - "operationId": "restore_14", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/services/pipelineServices/restore" : { + "put" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Restore a soft deleted pipeline service.", + "description" : "Restore a soft deleted pipeline service.", + "operationId" : "restore_25", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Policy ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } + "responses" : { + "200" : { + "description" : "Successfully restored the PipelineService ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineService" + } + } + } + } + } + } + }, + "/v1/services/pipelineServices/{id}" : { + "get" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Get a pipeline service by Id", + "description" : "Get a pipeline service by `Id`.", + "operationId" : "getPipelineServiceByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Pipeline service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineService" + } + } + } + }, + "404" : { + "description" : "Pipeline service for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Delete a pipeline service by Id", + "description" : "Delete a pipeline services. If pipelines (and tasks) belong to the service, it can't be deleted.", + "operationId" : "deletePipelineService", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Pipeline service for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Update a pipeline service", + "description" : "Update an existing pipeline service using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchPipelineService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - } - } - }, - "/v1/policies/validation/condition/{expression}": { - "get": { - "tags": ["Policies"], - "summary": "Validate a given condition", - "description": "Validate a given condition expression used in authoring rules.", - "operationId": "validateCondition_1", - "parameters": [ - { - "name": "expression", - "in": "path", - "description": "Expression of validating rule", - "required": true, - "schema": { - "type": "string" + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } - ], - "responses": { - "204": { - "description": "No value is returned" - }, - "400": { - "description": "Invalid expression" - } } } }, - "/v1/policies/{id}": { - "get": { - "tags": ["Policies"], - "summary": "Get a policy by id", - "description": "Get a policy by `Id`.", - "operationId": "getPolicyByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the policy", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/services/pipelineServices/{id}/testConnectionResult" : { + "put" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Add test connection result", + "description" : "Add test connection result to the service.", + "operationId" : "addTestConnectionResult_5", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestConnectionResult" + } } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,location,teams,roles" + } + }, + "responses" : { + "200" : { + "description" : "Successfully updated the service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" + } + } } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + } + } + }, + "/v1/services/pipelineServices/{id}/versions" : { + "get" : { + "tags" : [ "Pipeline Services" ], + "summary" : "List pipeline service versions", + "description" : "Get a list of all the versions of a pipeline service identified by `Id`", + "operationId" : "listAllPipelineServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of pipeline service versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/services/pipelineServices/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Pipeline Services" ], + "summary" : "Get a version of the pipeline service", + "description" : "Get a version of the pipeline service by given `Id`", + "operationId" : "getSpecificPipelineService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the pipeline service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "pipeline service version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "pipeline service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PipelineService" + } + } + } + }, + "404" : { + "description" : "Pipeline service for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/services/searchServices" : { + "get" : { + "tags" : [ "Search Services" ], + "summary" : "List search services", + "description" : "Get a list of search services.", + "operationId" : "listSearchServices", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "domain", + "in" : "query", + "description" : "Filter services by domain", + "schema" : { + "type" : "string", + "example" : "Marketing" + } + }, { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of search services before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of search services after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of search service instances", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchServiceList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Search Services" ], + "summary" : "Update search service", + "description" : "Update an existing or create a new search service.", + "operationId" : "createOrUpdateSearchService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateSearchService" + } } } - ], - "responses": { - "200": { - "description": "The policy", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" + }, + "responses" : { + "200" : { + "description" : "Object store service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchService" } } } }, - "404": { - "description": "Policy for instance {id} is not found" + "400" : { + "description" : "Bad request" } } }, - "delete": { - "tags": ["Policies"], - "summary": "Delete a policy by Id", - "description": "Delete a policy by `Id`.", - "operationId": "deletePolicy", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the policy", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "policy for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Policies"], - "summary": "Update a policy", - "description": "Update an existing policy using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchPolicy", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the policy", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "post" : { + "tags" : [ "Search Services" ], + "summary" : "Create search service", + "description" : "Create a new search service.", + "operationId" : "createSearchService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateSearchService" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "Search service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchService" + } + } } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/services/searchServices/name/{fqn}" : { + "delete" : { + "tags" : [ "Search Services" ], + "summary" : "Delete an SearchService by fully qualified name", + "description" : "Delete an SearchService by `fullyQualifiedName`.", + "operationId" : "deleteSearchServiceByFQN", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Name of the SearchService", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "SearchService for instance {fqn} is not found" } } } }, - "/v1/policies/{id}/versions": { - "get": { - "tags": ["Policies"], - "summary": "List policy versions", - "description": "Get a list of all the versions of a policy identified by `id`", - "operationId": "listAllPolicyVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the policy", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/services/searchServices/name/{name}" : { + "get" : { + "tags" : [ "Search Services" ], + "summary" : "Get search service by name", + "description" : "Get a search service by the service `name`.", + "operationId" : "getSearchServiceByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of policy versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "search service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchService" } } } + }, + "404" : { + "description" : "search service for instance {id} is not found" } } } }, - "/v1/policies/{id}/versions/{version}": { - "get": { - "tags": ["Policies"], - "summary": "Get a version of the policy by Id", - "description": "Get a version of the policy by given `Id`", - "operationId": "getSpecificPolicyVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the policy", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/services/searchServices/restore" : { + "put" : { + "tags" : [ "Search Services" ], + "summary" : "Restore a soft deleted SearchService.", + "description" : "Restore a soft deleted SearchService.", + "operationId" : "restore_26", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } - }, - { - "name": "version", - "in": "path", - "description": "policy version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the SearchService.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchService" + } + } + } + } + } + } + }, + "/v1/services/searchServices/{id}" : { + "get" : { + "tags" : [ "Search Services" ], + "summary" : "Get an search service", + "description" : "Get an search service by `id`.", + "operationId" : "getSearchServiceByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "search service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchService" + } + } + } + }, + "404" : { + "description" : "search service for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Search Services" ], + "summary" : "Delete an search service", + "description" : "Delete an search services. If containers belong the service, it can't be deleted.", + "operationId" : "deleteSearchService", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the search service", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "SearchService service for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Search Services" ], + "summary" : "Update an search service", + "description" : "Update an existing search service using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchSearchService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "policy", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } - }, - "404": { - "description": "Policy for instance {id} and version {version} is not found" } } } }, - "/v1/queries": { - "get": { - "tags": ["Queries"], - "summary": "Get a list of Queries", - "description": "Get a list of queries. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listQueries", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,users,votes,tags,queryUsedIn" - } - }, - { - "name": "entityId", - "in": "query", - "description": "UUID of the entity for which to list the Queries", - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number queries returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of queries before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of queries after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/services/searchServices/{id}/testConnectionResult" : { + "put" : { + "tags" : [ "Search Services" ], + "summary" : "Add test connection result", + "description" : "Add test connection result to the service.", + "operationId" : "addTestConnectionResult_6", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestConnectionResult" + } } } - ], - "responses": { - "200": { - "description": "Get List of queries", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QueryList" + }, + "responses" : { + "200" : { + "description" : "Successfully updated the service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchService" } } } } - } - }, - "put": { - "tags": ["Queries"], - "summary": "Create or update a query", - "description": "Create a query, if it does not exist. If a query already exists, update the query.", - "operationId": "createOrUpdateQuery", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateQuery" + } + } + }, + "/v1/services/searchServices/{id}/versions" : { + "get" : { + "tags" : [ "Search Services" ], + "summary" : "List search service versions", + "description" : "Get a list of all the versions of an search service identified by `id`", + "operationId" : "listAllSearchServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "search service Id", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of search service versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/services/searchServices/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Search Services" ], + "summary" : "Get a version of the search service", + "description" : "Get a version of the search service by given `id`", + "operationId" : "getSpecificSearchServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "search service Id", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "version", + "in" : "path", + "description" : "search service version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "search service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SearchService" + } + } + } + }, + "404" : { + "description" : "Object store service for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/services/storageServices" : { + "get" : { + "tags" : [ "Object Store Services" ], + "summary" : "List storage services", + "description" : "Get a list of storage services.", + "operationId" : "listStorageServices", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "domain", + "in" : "query", + "description" : "Filter services by domain", + "schema" : { + "type" : "string", + "example" : "Marketing" + } + }, { + "name" : "limit", + "in" : "query", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of storage services before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of storage services after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of storage service instances", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StorageServiceList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Object Store Services" ], + "summary" : "Update storage service", + "description" : "Update an existing or create a new storage service.", + "operationId" : "createOrUpdateStorageService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateStorageService" } } } }, - "responses": { - "200": { - "description": "The query", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Query" + "responses" : { + "200" : { + "description" : "Object store service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StorageService" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Queries"], - "summary": "Create a query", - "description": "Create a query under an existing entity.", - "operationId": "createQuery", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateQuery" + "post" : { + "tags" : [ "Object Store Services" ], + "summary" : "Create storage service", + "description" : "Create a new storage service.", + "operationId" : "createStorageService", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateStorageService" } } } }, - "responses": { - "200": { - "description": "The query", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QueryList" + "responses" : { + "200" : { + "description" : "Object store service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StorageService" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/services/storageServices/name/{fqn}" : { + "delete" : { + "tags" : [ "Object Store Services" ], + "summary" : "Delete an StorageService by fully qualified name", + "description" : "Delete an StorageService by `fullyQualifiedName`.", + "operationId" : "deleteStorageServiceByFQN", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Name of the StorageService", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "StorageService for instance {fqn} is not found" } } } }, - "/v1/queries/name/{fqn}": { - "get": { - "tags": ["Queries"], - "summary": "Get a query by name", - "description": "Get a query by fully qualified table name.", - "operationId": "getQueryFqn", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,users,votes,tags,queryUsedIn" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/services/storageServices/name/{name}" : { + "get" : { + "tags" : [ "Object Store Services" ], + "summary" : "Get storage service by name", + "description" : "Get a storage service by the service `name`.", + "operationId" : "getStorageServiceByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] } - ], - "responses": { - "200": { - "description": "query", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Query" + } ], + "responses" : { + "200" : { + "description" : "Object store service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StorageService" } } } }, - "404": { - "description": "Query for instance {id} is not found" + "404" : { + "description" : "Object store service for instance {id} is not found" } } - }, - "delete": { - "tags": ["Queries"], - "summary": "Delete a query", - "description": "Delete a query by `fullyQualifiedName`.", - "operationId": "deleteQueryByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the location", - "required": true, - "schema": { - "type": "string" + } + }, + "/v1/services/storageServices/restore" : { + "put" : { + "tags" : [ "Object Store Services" ], + "summary" : "Restore a soft deleted StorageService.", + "description" : "Restore a soft deleted StorageService.", + "operationId" : "restore_27", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Query for instance {fqn} is not found" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the StorageService.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StorageService" + } + } + } + } + } + } + }, + "/v1/services/storageServices/{id}" : { + "get" : { + "tags" : [ "Object Store Services" ], + "summary" : "Get an storage service", + "description" : "Get an storage service by `id`.", + "operationId" : "getStorageServiceByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "pipelines,owner,tags,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "Object store service instance", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StorageService" + } + } + } + }, + "404" : { + "description" : "Object store service for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Object Store Services" ], + "summary" : "Delete an storage service", + "description" : "Delete an storage services. If containers belong the service, it can't be deleted.", + "operationId" : "deleteStorageService", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the storage service", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "StorageService service for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Object Store Services" ], + "summary" : "Update an storage service", + "description" : "Update an existing storage service using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchStorageService", + "parameters" : [ { + "name" : "id", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } } } } }, - "/v1/queries/restore": { - "put": { - "tags": ["Queries"], - "summary": "Restore a soft deleted Query", - "description": "Restore a soft deleted Query.", - "operationId": "restore_15", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/services/storageServices/{id}/testConnectionResult" : { + "put" : { + "tags" : [ "Object Store Services" ], + "summary" : "Add test connection result", + "description" : "Add test connection result to the service.", + "operationId" : "addTestConnectionResult_7", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the service", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TestConnectionResult" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Query ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Query" + "responses" : { + "200" : { + "description" : "Successfully updated the service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseService" } } } } - } - } - }, - "/v1/queries/{id}": { - "get": { - "tags": ["Queries"], - "summary": "Get a query", - "description": "Get a Query by `id`", - "operationId": "getQueryById", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "query Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + } + } + }, + "/v1/services/storageServices/{id}/versions" : { + "get" : { + "tags" : [ "Object Store Services" ], + "summary" : "List storage service versions", + "description" : "Get a list of all the versions of an storage service identified by `id`", + "operationId" : "listAllStorageServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "storage service Id", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "List of storage service versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/services/storageServices/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Object Store Services" ], + "summary" : "Get a version of the storage service", + "description" : "Get a version of the storage service by given `id`", + "operationId" : "getSpecificStorageServiceVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "storage service Id", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "version", + "in" : "path", + "description" : "storage service version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "storage service", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StorageService" + } + } + } + }, + "404" : { + "description" : "Object store service for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/storedProcedures" : { + "get" : { + "tags" : [ "Stored Procedures" ], + "summary" : "List Stored Procedures", + "description" : "Get a list of stored procedures, optionally filtered by `databaseSchema` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listStoredProcedures", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,followers,extension,domain" + } + }, { + "name" : "databaseSchema", + "in" : "query", + "description" : "Filter stored procedures by database schema", + "schema" : { + "type" : "string", + "example" : "customerDatabaseSchema" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number schemas returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of schemas before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of schemas after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of stored procedures", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StoredProcedureList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Create or update Stored Procedure", + "description" : "Create a stored procedure, if it does not exist or update an existing stored procedure.", + "operationId" : "createOrUpdateStoredProcedure", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateStoredProcedure" + } } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,users,votes,tags,queryUsedIn" + } + }, + "responses" : { + "200" : { + "description" : "The updated schema ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StoredProcedure" + } + } } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + } + }, + "post" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Create a Stored Procedure", + "description" : "Create a Stored Procedure under an existing `service`.", + "operationId" : "createStoredProcedure", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateStoredProcedure" + } } } - ], - "responses": { - "200": { - "description": "query", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Query" + }, + "responses" : { + "200" : { + "description" : "The Stored Procedure", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StoredProcedure" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/storedProcedures/name/{fqn}" : { + "get" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Get a Stored Procedure by fully qualified name", + "description" : "Get a Stored Procedure by fully qualified name.", + "operationId" : "getStoredProcedureByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the Stored Procedure", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,followers,extension,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The schema", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StoredProcedure" } } } }, - "404": { - "description": "Query for instance {id} is not found" + "404" : { + "description" : "Stored Procedure for instance {fqn} is not found" } } }, - "delete": { - "tags": ["Queries"], - "summary": "Delete a query", - "description": "Delete a query by `id`.", - "operationId": "deleteQuery", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the query", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "delete" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Delete a schema by fully qualified name", + "description" : "Delete a schema by `fullyQualifiedName`. Schema can only be deleted if it has no tables.", + "operationId" : "deleteDBSchemaByFQN_1", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "200": { - "description": "OK" + }, { + "name" : "fqn", + "in" : "path", + "description" : "Name of the DBSchema", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Query for instance {id} is not found" + "404" : { + "description" : "Schema for instance {fqn} is not found" } } - }, - "patch": { - "tags": ["Queries"], - "summary": "Update a query", - "description": "Update an existing query using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchQuery", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the query", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + } + }, + "/v1/storedProcedures/restore" : { + "put" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Restore a soft deleted database schema.", + "description" : "Restore a soft deleted database schema.", + "operationId" : "restore_7", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } + } + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the DatabaseSchema ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DatabaseSchema" + } + } + } + } + } + } + }, + "/v1/storedProcedures/{id}" : { + "get" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Get a stored procedure by Id", + "description" : "Get a stored procedure by `Id`.", + "operationId" : "getStoredProcedureByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Stored Procedure Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,tags,followers,extension,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The Stored Procedure", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StoredProcedure" + } + } + } + }, + "404" : { + "description" : "Schema for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Delete a StoredProcedure by Id", + "description" : "Delete a StoredProcedure by `Id`.", + "operationId" : "deleteStoredProcedure", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Database schema Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "StoredProcedure for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Update a Stored Procedure", + "description" : "Update an existing StoredProcedure using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchStoredProcedure", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Stored Procedure Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/queries/{id}/followers": { - "put": { - "tags": ["Queries"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as follower of this model", - "operationId": "addFollower_2", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Query", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/storedProcedures/{id}/followers" : { + "put" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as followed of this Stored Procedure", + "operationId" : "addFollower", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the StoredProcedure", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "uuid" + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" } } } }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" - } + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } } } }, - "404": { - "description": "model for instance {id} is not found" + "404" : { + "description" : "StoredProcedure for instance {id} is not found" + } + } + } + }, + "/v1/storedProcedures/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the Stored Procedure.", + "operationId" : "deleteFollower", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Stored Procedure", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } } } } }, - "/v1/queries/{id}/followers/{userId}": { - "delete": { - "tags": ["Queries"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the model.", - "operationId": "deleteFollower_3", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Query", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/storedProcedures/{id}/versions" : { + "get" : { + "tags" : [ "Stored Procedures" ], + "summary" : "List stored procedure versions", + "description" : "Get a list of all the versions of a stored procedure identified by `Id`", + "operationId" : "listAllStoredProceduresVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Stored Procedure Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" + } ], + "responses" : { + "200" : { + "description" : "List of schema versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } @@ -11559,604 +20486,1088 @@ } } }, - "/v1/queries/{id}/usage": { - "put": { - "tags": ["Queries"], - "summary": "Add query usage", - "description": "Add query usage", - "operationId": "addQueryUsage", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the query", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/storedProcedures/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Get a version of the Stored Procedure", + "description" : "Get a version of the Stored Procedure by given `Id`", + "operationId" : "getSpecificStoredProcedureVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Stored Procedure Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Stored Procedure version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "database schema", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/StoredProcedure" + } + } + } + }, + "404" : { + "description" : "Stored Procedure for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/storedProcedures/{id}/vote" : { + "put" : { + "tags" : [ "Stored Procedures" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_4", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } } } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/system/version" : { + "get" : { + "tags" : [ "System" ], + "summary" : "Get version of metadata service", + "description" : "Get the build version of OpenMetadata service and build timestamp.", + "operationId" : "getCatalogVersion", + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/OpenMetadataServerVersion" + } + } + } + } + } + } + }, + "/v1/tables" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "List tables", + "description" : "Get a list of tables, optionally filtered by `database` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listTables", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "tableConstraints,tablePartition,usageSummary,owner,customMetrics,columns,tags,followers,joins,viewDefinition,dataModel,extension,testSuite,domain,dataProducts,lifeCycle" + } + }, { + "name" : "database", + "in" : "query", + "description" : "Filter tables by database fully qualified name", + "schema" : { + "type" : "string", + "example" : "snowflakeWestCoast.financeDB" + } + }, { + "name" : "databaseSchema", + "in" : "query", + "description" : "Filter tables by databaseSchema fully qualified name", + "schema" : { + "type" : "string", + "example" : "snowflakeWestCoast.financeDB.schema" + } + }, { + "name" : "includeEmptyTestSuite", + "in" : "query", + "description" : "Include tables with an empty test suite (i.e. no test cases have been created for this table). Default to true", + "schema" : { + "type" : "boolean", + "example" : true, + "default" : true + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number tables returned. (1 to 1000000, default = 10) ", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of tables before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of tables after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of tables", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TableList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Tables" ], + "summary" : "Create or update a table", + "description" : "Create a table, if it does not exist. If a table already exists, update the table.", + "operationId" : "createOrUpdateTable", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTable" } } } }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Query" + "responses" : { + "200" : { + "description" : "The table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } + }, + "400" : { + "description" : "Bad request" } } }, - "delete": { - "tags": ["Queries"], - "summary": "remove query used in", - "description": "remove Query Used in", - "operationId": "removeQueryUsedIn", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the query", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } + "post" : { + "tags" : [ "Tables" ], + "summary" : "Create a table", + "description" : "Create a new table under an existing `database`.", + "operationId" : "createTable", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTable" } } } }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Query" + "responses" : { + "200" : { + "description" : "table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/tables/name/{fqn}" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "Get a table by fully qualified name", + "description" : "Get a table by fully qualified table name.", + "operationId" : "getTableByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the table", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "tableConstraints,tablePartition,usageSummary,owner,customMetrics,columns,tags,followers,joins,viewDefinition,dataModel,extension,testSuite,domain,dataProducts,lifeCycle" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } + }, + "404" : { + "description" : "Table for instance {fqn} is not found" + } + } + }, + "delete" : { + "tags" : [ "Tables" ], + "summary" : "Delete a table by fully qualified name", + "description" : "Delete a table by `fullyQualifiedName`.", + "operationId" : "deleteTable_1", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Name of the table", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Table for instance {fqn} is not found" } } } }, - "/v1/queries/{id}/versions": { - "get": { - "tags": ["Queries"], - "summary": "Get List of all query versions", - "description": "Get a list of all the versions of a query identified by `id`", - "operationId": "listAllQueryVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Query Id", - "required": true, - "schema": { - "type": "string" + "/v1/tables/restore" : { + "put" : { + "tags" : [ "Tables" ], + "summary" : "Restore a soft deleted table", + "description" : "Restore a soft deleted table.", + "operationId" : "restore_8", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } } - ], - "responses": { - "200": { - "description": "List of query versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Table ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } } - } - } - }, - "/v1/queries/{id}/versions/{version}": { - "get": { - "tags": ["Queries"], - "summary": "Get a specific version of the query", - "description": "Get a version of the query by given `id`", - "operationId": "getSpecificQueryVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Query Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Query version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + } + } + }, + "/v1/tables/{fqn}/columnProfile" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "List of column profiles", + "description" : "Get a list of all the column profiles for the given table fqn, optionally filtered by `extension`, `startTs` and `endTs` of the profile. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "list column Profiles", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "FQN of the column", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "startTs", + "in" : "query", + "description" : "Filter table/column profiles after the given start timestamp", + "required" : true, + "schema" : { + "type" : "number" + } + }, { + "name" : "endTs", + "in" : "query", + "description" : "Filter table/column profiles before the given end timestamp", + "required" : true, + "schema" : { + "type" : "number" + } + } ], + "responses" : { + "200" : { + "description" : "List of table profiles", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ColumnProfileList" + } + } + } + } + } + } + }, + "/v1/tables/{fqn}/systemProfile" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "List of system profiles", + "description" : "Get a list of all the system profiles for the given table fqn, filtered by `extension`, `startTs` and `endTs` of the profile. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "list system Profiles", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "FQN of the table", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "startTs", + "in" : "query", + "description" : "Filter system profiles after the given start timestamp", + "required" : true, + "schema" : { + "type" : "number" + } + }, { + "name" : "endTs", + "in" : "query", + "description" : "Filter system profiles before the given end timestamp", + "required" : true, + "schema" : { + "type" : "number" + } + } ], + "responses" : { + "200" : { + "description" : "List of system profiles", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SystemProfileList" + } + } + } + } + } + } + }, + "/v1/tables/{fqn}/tableProfile" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "List of table profiles", + "description" : "Get a list of all the table profiles for the given table fqn, optionally filtered by `extension`, `startTs` and `endTs` of the profile. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "list Profiles", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "FQN of the table or column", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "startTs", + "in" : "query", + "description" : "Filter table/column profiles after the given start timestamp", + "schema" : { + "type" : "number" + } + }, { + "name" : "endTs", + "in" : "query", + "description" : "Filter table/column profiles before the given end timestamp", + "schema" : { + "type" : "number" + } + } ], + "responses" : { + "200" : { + "description" : "List of table profiles", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TableProfileList" + } + } + } + } + } + } + }, + "/v1/tables/{fqn}/tableProfile/latest" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "Get the latest table profile", + "description" : "Get the latest table and column profile ", + "operationId" : "Get the latest table and column profile", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "FQN of the table or column", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Table with profile and column profile", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" + } + } + } + } + } + } + }, + "/v1/tables/{fqn}/{entityType}/{timestamp}/profile" : { + "delete" : { + "tags" : [ "Tables" ], + "summary" : "Delete table profile data", + "description" : "Delete table profile data to the table.", + "operationId" : "deleteDataProfiler", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "FQN of the table or column", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "entityType", + "in" : "path", + "description" : "type of the entity table or column", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "timestamp", + "in" : "path", + "description" : "Timestamp of the table profile", + "required" : true, + "schema" : { + "type" : "integer", + "format" : "int64" + } + } ], + "responses" : { + "200" : { + "description" : "Successfully deleted the Table Profile", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TableProfile" + } + } + } + } + } + } + }, + "/v1/tables/{id}" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "Get a table by Id", + "description" : "Get a table by `Id`", + "operationId" : "getTableByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "table Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "tableConstraints,tablePartition,usageSummary,owner,customMetrics,columns,tags,followers,joins,viewDefinition,dataModel,extension,testSuite,domain,dataProducts,lifeCycle" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" + } + } + } + }, + "404" : { + "description" : "Table for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Tables" ], + "summary" : "Delete a table by Id", + "description" : "Delete a table by `Id`.", + "operationId" : "deleteTable", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Table for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Tables" ], + "summary" : "Update a table", + "description" : "Update an existing table using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchTable", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } - ], - "responses": { - "200": { - "description": "query", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Query" - } - } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } - }, - "404": { - "description": "query for instance {id} and version {version} is not found" } } } }, - "/v1/queries/{id}/vote": { - "put": { - "tags": ["Queries"], - "summary": "Update Vote for a query", - "description": "Update vote for a query", - "operationId": "updateVote", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the Query", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/tables/{id}/customMetric" : { + "put" : { + "tags" : [ "Tables" ], + "summary" : "Add column custom metrics", + "description" : "Add column custom metrics.", + "operationId" : "addCustomMetric", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VoteRequest" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateCustomMetric" } } } }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } - }, - "404": { - "description": "model for instance {id} is not found" } } } }, - "/v1/reports": { - "get": { - "tags": ["Reports (beta)"], - "summary": "List reports", - "description": "Get a list of reports. Use `fields` parameter to get only necessary fields.", - "operationId": "listReports", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,usageSummary" - } + "/v1/tables/{id}/customMetric/{columnName}/{customMetricName}" : { + "delete" : { + "tags" : [ "Tables" ], + "summary" : "Delete custom metric from a column", + "description" : "Delete a custom metric from a column.", + "operationId" : "deleteCustomMetric", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "columnName", + "in" : "path", + "description" : "column of the table", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "customMetricName", + "in" : "path", + "description" : "column Test Type", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of reports", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReportList" + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } } } - }, - "put": { - "tags": ["Reports (beta)"], - "summary": "Create or update a report", - "description": "Create a new report, it it does not exist or update an existing report.", - "operationId": "createOrUpdateReport", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Report" + } + }, + "/v1/tables/{id}/dataModel" : { + "put" : { + "tags" : [ "Tables" ], + "summary" : "Add data modeling information to a table", + "description" : "Add data modeling (such as DBT model) information on how the table was created to the table.", + "operationId" : "addDataModel", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DataModel" } } } }, - "responses": { - "200": { - "description": "The report", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Report" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } - }, - "400": { - "description": "Bad request" } } - }, - "post": { - "tags": ["Reports (beta)"], - "summary": "Create a report", - "description": "Create a new report.", - "operationId": "getReportByFQN", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Report" + } + }, + "/v1/tables/{id}/followers" : { + "put" : { + "tags" : [ "Tables" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as followed of this table", + "operationId" : "addFollowerToTable", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" } } } }, - "responses": { - "200": { - "description": "The report", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Report" + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } }, - "400": { - "description": "Bad request" + "404" : { + "description" : "Table for instance {id} is not found" } } } }, - "/v1/reports/{id}": { - "get": { - "tags": ["Reports (beta)"], - "summary": "Get a report by Id", - "description": "Get a report by `Id`.", - "operationId": "getReportByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the report", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,usageSummary" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/tables/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Tables" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the table.", + "operationId" : "deleteFollower_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "The report", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Report" + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } - }, - "404": { - "description": "Report for instance {id} is not found" } } } }, - "/v1/roles": { - "get": { - "tags": ["Roles"], - "summary": "List roles", - "description": "Get a list of roles. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listRoles", - "parameters": [ - { - "name": "default", - "in": "query", - "description": "List only default role(s)", - "schema": { - "type": "boolean", - "example": true - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "policies,teams,users" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number tables returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 + "/v1/tables/{id}/joins" : { + "put" : { + "tags" : [ "Tables" ], + "summary" : "Add table join information", + "description" : "Add information about other tables that this table is joined with. Join information can only be added for the last 30 days starting today.", + "operationId" : "addTableJoinInfo", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TableJoins" + } } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of tables before this cursor", - "schema": { - "type": "string" + } + }, + "responses" : { + "200" : { + "description" : "Successfully updated the Table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" + } + } } }, - { - "name": "after", - "in": "query", - "description": "Returns list of tables after this cursor", - "schema": { - "type": "string" - } + "404" : { + "description" : "Table for instance {id} is not found" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "400" : { + "description" : "Date range can only include past 30 days starting today" + } + } + } + }, + "/v1/tables/{id}/sampleData" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "Get sample data", + "description" : "Get sample data from the table.", + "operationId" : "getSampleData", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of roles", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleList" + } ], + "responses" : { + "200" : { + "description" : "Successfully update the Table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } } } }, - "put": { - "tags": ["Roles"], - "summary": "Update role", - "description": "Create or Update a role.", - "operationId": "createOrUpdateRole", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateRole" + "put" : { + "tags" : [ "Tables" ], + "summary" : "Add sample data", + "description" : "Add sample data to the table.", + "operationId" : "addSampleData", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TableData" } } } }, - "responses": { - "200": { - "description": "The role ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Role" + "responses" : { + "200" : { + "description" : "Successfully update the Table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } - }, - "400": { - "description": "Bad request" } } }, - "post": { - "tags": ["Roles"], - "summary": "Create a role", - "description": "Create a new role.", - "operationId": "createRole", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateRole" - } - } + "delete" : { + "tags" : [ "Tables" ], + "summary" : "Delete sample data", + "description" : "Delete sample data from the table.", + "operationId" : "deleteSampleData", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - }, - "responses": { - "200": { - "description": "The role", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Role" + } ], + "responses" : { + "200" : { + "description" : "Successfully update the Table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } - }, - "400": { - "description": "Bad request" } } } }, - "/v1/roles/name/{name}": { - "get": { - "tags": ["Roles"], - "summary": "Get a role by name", - "description": "Get a role by `name`.", - "operationId": "getRoleByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the role", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "policies,teams,users" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The role", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Role" - } - } - } - }, - "404": { - "description": "Role for instance {name} is not found" - } - } - }, - "delete": { - "tags": ["Roles"], - "summary": "Delete a role", - "description": "Delete a role by given `name`.", - "operationId": "deleteRoleByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the role", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Role for instance {name} is not found" + "/v1/tables/{id}/tableProfile" : { + "put" : { + "tags" : [ "Tables" ], + "summary" : "Add table profile data", + "description" : "Add table profile data to the table.", + "operationId" : "addDataProfiler", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - } - } - }, - "/v1/roles/restore": { - "put": { - "tags": ["Roles"], - "summary": "Restore a soft deleted role", - "description": "Restore a soft deleted role.", - "operationId": "restore_24", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTableProfile" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Role. ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Role" + "responses" : { + "200" : { + "description" : "Successfully updated the Table ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } @@ -12164,161 +21575,94 @@ } } }, - "/v1/roles/{id}": { - "get": { - "tags": ["Roles"], - "summary": "Get a role by id", - "description": "Get a role by `id`.", - "operationId": "getRoleByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the role", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "policies,teams,users" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/tables/{id}/tableProfilerConfig" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "Get table profile config", + "description" : "Get table profile config to the table.", + "operationId" : "getDataProfilerConfig_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "The role", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Role" + } ], + "responses" : { + "200" : { + "description" : "Successfully updated the Table ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } - }, - "404": { - "description": "Role for instance {id} is not found" } } }, - "delete": { - "tags": ["Roles"], - "summary": "Delete a role", - "description": "Delete a role by given `id`.", - "operationId": "deleteRole", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the role", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Role for instance {id} is not found" + "put" : { + "tags" : [ "Tables" ], + "summary" : "Add table profile config", + "description" : "Add table profile config to the table.", + "operationId" : "addDataProfilerConfig_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - } - }, - "patch": { - "tags": ["Roles"], - "summary": "Update a role", - "description": "Update an existing role with JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchRole", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the role", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TableProfilerConfig" + } } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "200" : { + "description" : "Successfully updated the Table ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" + } + } } } } - } - }, - "/v1/roles/{id}/versions": { - "get": { - "tags": ["Roles"], - "summary": "List role versions", - "description": "Get a list of all the versions of a role identified by `id`", - "operationId": "listAllRoleVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the role", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, + "delete" : { + "tags" : [ "Tables" ], + "summary" : "Delete table profiler config", + "description" : "delete table profile config to the table.", + "operationId" : "delete DataProfilerConfig_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the table", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of role versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + } ], + "responses" : { + "200" : { + "description" : "Successfully deleted the Table profiler config", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } @@ -12326,472 +21670,726 @@ } } }, - "/v1/roles/{id}/versions/{version}": { - "get": { - "tags": ["Roles"], - "summary": "Get a version of the role", - "description": "Get a version of the role by given `id`", - "operationId": "getSpecificRoleVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the role", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Role version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/tables/{id}/versions" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "List table versions", + "description" : "Get a list of all the versions of a table identified by `Id`", + "operationId" : "listAllTableVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Table Id", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "role", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Role" + } ], + "responses" : { + "200" : { + "description" : "List of table versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } - }, - "404": { - "description": "Role for instance {id} and version {version} is not found" } } } }, - "/v1/search/aggregate": { - "get": { - "tags": ["Search"], - "summary": "Get aggregated fields", - "description": "Get aggregated fields from entities.", - "operationId": "getAggregateFields", - "parameters": [ - { - "name": "index", - "in": "query", - "schema": { - "type": "string", - "default": "table_search_index" - } - }, - { - "name": "field", - "in": "query", - "description": "Field in an entity.", - "schema": { - "type": "string" - } - }, - { - "name": "size", - "in": "query", - "description": "Size field to limit the no.of results returned, defaults to 10", - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "deleted", - "in": "query", - "schema": { - "type": "string", - "default": "false" - } + "/v1/tables/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Tables" ], + "summary" : "Get a version of the table", + "description" : "Get a version of the table by given `Id`", + "operationId" : "getSpecificDatabaseVersion_1", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Table Id", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "Table Aggregate API", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Suggest" + }, { + "name" : "version", + "in" : "path", + "description" : "Table version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "table", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Table" } } } - } - } - } - }, - "/v1/search/mappings": { - "get": { - "tags": ["Search"], - "summary": "Get Search Mapping Schema", - "description": "Get Search Mapping Schema", - "operationId": "getSearchMappingSchema", - "parameters": [ - { - "name": "entityType", - "in": "query", - "description": "List of Entities to get schema for", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" }, - "404": { - "description": "Not found" + "404" : { + "description" : "Table for instance {id} and version {version} is not found" } } } }, - "/v1/search/query": { - "get": { - "tags": ["Search"], - "summary": "Search entities", - "description": "Search entities using query test. Use query params `from` and `size` for pagination. Use `sort_field` to sort the results in `sort_order`.", - "operationId": "searchEntitiesWithQuery", - "parameters": [ - { - "name": "q", - "in": "query", - "description": "Search Query Text, Pass *text* for substring match; Pass without wildcards for exact match.
1. For listing all tables or topics pass q=*
2. For search tables or topics pass q=*search_term*
3. For searching field names such as search by column_name pass q=column_names:address
4. For searching by tag names pass q=tags:user.email
5. When user selects a filter pass q=query_text AND tags:user.email AND platform:MYSQL
6. Search with multiple values of same filter q=tags:user.email AND tags:user.address
logic operators such as AND and OR must be in uppercase ", - "required": true, - "schema": { - "type": "string", - "default": "*" - } - }, - { - "name": "index", - "in": "query", - "description": "ElasticSearch Index name, defaults to table_search_index", - "schema": { - "type": "string", - "default": "table_search_index" - } - }, - { - "name": "deleted", - "in": "query", - "description": "Filter documents by deleted param. By default deleted is false", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "from", - "in": "query", - "description": "From field to paginate the results, defaults to 0", - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "size", - "in": "query", - "description": "Size field to limit the no.of results returned, defaults to 10", - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "sort_field", - "in": "query", - "description": "Sort the search results by field, available fields to sort weekly_stats , daily_stats, monthly_stats, last_updated_timestamp", - "schema": { - "type": "string", - "default": "_score" - } - }, - { - "name": "sort_order", - "in": "query", - "description": "Sort order asc for ascending or desc for descending, defaults to desc", - "schema": { - "type": "string", - "default": "desc" - } - }, - { - "name": "track_total_hits", - "in": "query", - "description": "Track Total Hits", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query_filter", - "in": "query", - "description": "Elasticsearch query that will be combined with the query_string query generator from the `query` argument", - "schema": { - "type": "string" - } - }, - { - "name": "post_filter", - "in": "query", - "description": "Elasticsearch query that will be used as a post_filter", - "schema": { - "type": "string" - } - }, - { - "name": "fetch_source", - "in": "query", - "description": "Get document body for each hit", - "schema": { - "type": "boolean", - "default": true + "/v1/tables/{id}/vote" : { + "put" : { + "tags" : [ "Tables" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_5", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } } - }, - { - "name": "include_source_fields", - "in": "query", - "description": "Get only selected fields of the document body for each hit. Empty value will return all fields", - "schema": { - "type": "array", - "items": { - "type": "string" + } + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/tags" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "List tags", + "description" : "Get a list of tags. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listTags", + "parameters" : [ { + "name" : "parent", + "in" : "query", + "description" : "List tags filtered by children of tag identified by fqn given in `parent` parameter. The fqn can either be classificationName or fqn of a parent tag", + "schema" : { + "type" : "string", + "example" : "children,usageCount" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,usageCount" + } + }, { + "name" : "disabled", + "in" : "query", + "description" : "Filter Disabled Classifications", + "schema" : { + "type" : "string", + "example" : "children,usageCount", + "default" : "false" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number tags returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of tags before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of tags after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of tags", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TagList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Classifications" ], + "summary" : "Create or update a tag", + "description" : "Create a new tag, if it does not exist or update an existing tag.", + "operationId" : "createOrUpdateTag", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTag" } } } - ], - "responses": { - "200": { - "description": "search response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchResponse" + }, + "responses" : { + "200" : { + "description" : "The tag", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Tag" } } } - } - } - } - }, - "/v1/search/reindex": { - "get": { - "tags": ["Search"], - "summary": "Get all reindex batch jobs", - "description": "Get all reindex batch jobs", - "operationId": "getAllReindexBatchJobs", - "responses": { - "200": { - "description": "Success" }, - "404": { - "description": "Not found" + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Search"], - "summary": "Run Batch Reindexing", - "description": "Reindex Elastic Search Reindexing Entities", - "operationId": "runBatchReindexing", - "requestBody": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/CreateEventPublisherJob" + "post" : { + "tags" : [ "Classifications" ], + "summary" : "Create a tag", + "description" : "Create a new tag.", + "operationId" : "createTag", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTag" } } } }, - "responses": { - "200": { - "description": "Success" + "responses" : { + "200" : { + "description" : "The tag", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Tag" + } + } + } }, - "404": { - "description": "Bot for instance {id} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/search/reindex/latest": { - "get": { - "tags": ["Search"], - "summary": "Get Latest Reindexing Batch Job", - "description": "Fetches the Latest Reindexing Job", - "operationId": "getLatestReindexBatchJob", - "responses": { - "200": { - "description": "Success" - }, - "404": { - "description": "No Job Found" + "/v1/tags/name/{fqn}" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "Get a tag by fully qualified name", + "description" : "Get a tag by `fullyQualifiedName`.", + "operationId" : "getTagByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the tag", + "required" : true, + "schema" : { + "type" : "string" } - } - } - }, - "/v1/search/reindex/stop/{jobId}": { - "put": { - "tags": ["Search"], - "summary": "Stop Reindex Job", - "description": "Stop a Reindex Job", - "operationId": "stopAJobWithId", - "parameters": [ - { - "name": "jobId", - "in": "path", - "description": "jobId Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,usageCount" } - ], - "responses": { - "200": { - "description": "Success" - }, - "404": { - "description": "Bot for instance {id} is not found" + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] } - } - } - }, - "/v1/search/reindex/stream/status": { - "get": { - "tags": ["Search"], - "summary": "Get Stream Job Latest Status", - "description": "Stream Job Status", - "operationId": "getStreamJobStatus", - "responses": { - "200": { - "description": "Success" + } ], + "responses" : { + "200" : { + "description" : "The tag", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Tag" + } + } + } }, - "404": { - "description": "Status not found" + "404" : { + "description" : "Tag for instance {fqn} is not found" } } - } - }, - "/v1/search/reindex/{jobId}": { - "get": { - "tags": ["Search"], - "summary": "Get Batch Reindexing Job with Id", - "description": "Get reindex job with Id", - "operationId": "getBatchReindexBatchJobWithId", - "parameters": [ - { - "name": "jobId", - "in": "path", - "description": "jobId Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, + "delete" : { + "tags" : [ "Classifications" ], + "summary" : "Delete a tag by fully qualified name", + "description" : "Delete a tag by `fullyQualifiedName`.", + "operationId" : "deleteTagByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false } - ], - "responses": { - "200": { - "description": "Success" + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the tag", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "Not found" + "404" : { + "description" : "tag for instance {fqn} is not found" } } } }, - "/v1/search/suggest": { - "get": { - "tags": ["Search"], - "summary": "Suggest entities", - "description": "Get suggested entities used for auto-completion.", - "operationId": "getSuggestedEntities", - "parameters": [ - { - "name": "q", - "in": "query", - "description": "Suggest API can be used to auto-fill the entities name while use is typing search text
1. To get suggest results pass q=us or q=user etc..
2. Do not add any wild-cards such as * like in search api
3. suggest api is a prefix suggestion
", - "required": true, - "schema": { - "type": "string" + "/v1/tags/restore" : { + "put" : { + "tags" : [ "Classifications" ], + "summary" : "Restore a soft deleted tag.", + "description" : "Restore a soft deleted tag.", + "operationId" : "restoreTag", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } } - }, - { - "name": "index", - "in": "query", - "schema": { - "type": "string", - "default": "table_search_index" + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Tag ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Tag" + } + } + } + } + } + } + }, + "/v1/tags/{id}" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "Get a tag by id", + "description" : "Get a tag by `id`.", + "operationId" : "getTagByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the tag", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "children,usageCount" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The tag", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Tag" + } + } + } + }, + "404" : { + "description" : "Tag for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Classifications" ], + "summary" : "Delete a tag by id", + "description" : "Delete a tag by `id`.", + "operationId" : "deleteTag", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this entity and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the tag", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "tag for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Classifications" ], + "summary" : "Update a tag", + "description" : "Update an existing tag using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchTag", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the tag", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } - }, - { - "name": "field", - "in": "query", - "description": "Field in object containing valid suggestions. Defaults to 'suggest`. All indices has a `suggest` field, only some indices have other `suggest_*` fields.", - "schema": { - "type": "string", - "default": "suggest" - } - }, - { - "name": "size", - "in": "query", - "description": "Size field to limit the no.of results returned, defaults to 10", - "schema": { - "type": "integer", - "format": "int32", - "default": 10 + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/tags/{id}/versions" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "List tag versions", + "description" : "Get a list of all the versions of a tag identified by `id`", + "operationId" : "listAllTagVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the tag", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of tag versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/tags/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Classifications" ], + "summary" : "Get a version of the tags", + "description" : "Get a version of the tag by given `id`", + "operationId" : "getSpecificTagVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the tag", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "tag version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "tags", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Tag" + } + } + } + }, + "404" : { + "description" : "Tag for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/teams" : { + "get" : { + "tags" : [ "Teams" ], + "summary" : "List teams", + "description" : "Get a list of teams. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listTeams", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,profile,users,owns,defaultRoles,parents,children,policies,userCount,childrenCount,domain" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number of teams returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of teams before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of teams after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "parentTeam", + "in" : "query", + "description" : "Filter the results by parent team name", + "schema" : { + "type" : "string" + } + }, { + "name" : "isJoinable", + "in" : "query", + "description" : "Filter the results by whether the team can be joined by any user or not", + "schema" : { + "type" : "boolean" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of teams", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TeamList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Teams" ], + "summary" : "Update team", + "description" : "Create or Update a team.", + "operationId" : "createOrUpdateTeam", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTeam" + } } - }, - { - "name": "fetch_source", - "in": "query", - "description": "Get document body for each hit", - "schema": { - "type": "boolean", - "default": true + } + }, + "responses" : { + "200" : { + "description" : "The team ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" + } + } } }, - { - "name": "include_source_fields", - "in": "query", - "description": "Get only selected fields of the document body for each hit. Empty value will return all fields", - "schema": { - "type": "array", - "items": { - "type": "string" + "400" : { + "description" : "Bad request" + } + } + }, + "post" : { + "tags" : [ "Teams" ], + "summary" : "Create a team", + "description" : "Create a new team.", + "operationId" : "createTeam", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTeam" } } - }, - { - "name": "deleted", - "in": "query", - "schema": { - "type": "boolean", - "default": false + } + }, + "responses" : { + "200" : { + "description" : "The team", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" + } + } } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/teams/documentation/csv" : { + "get" : { + "tags" : [ "Teams" ], + "summary" : "Get CSV documentation for team import/export", + "operationId" : "getCsvDocumentation_1", + "parameters" : [ { + "name" : "name", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "Table Suggestion API", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Suggest" + } ], + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" } } } @@ -12799,430 +22397,926 @@ } } }, - "/v1/services/dashboardServices": { - "get": { - "tags": ["Dashboard Services"], - "summary": "List dashboard services", - "description": "Get a list of dashboard services.", - "operationId": "listDashboardsService", - "parameters": [ - { - "name": "name", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of dashboard services before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of dashboard services after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/teams/hierarchy" : { + "get" : { + "tags" : [ "Teams" ], + "summary" : "List teams with hierarchy", + "description" : "Get a list of teams with hierarchy.", + "operationId" : "listTeamsHierarchy", + "parameters" : [ { + "name" : "limit", + "in" : "query", + "description" : "Limit the number of teams returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 1000, + "type" : "integer", + "format" : "int32", + "default" : 10000 + } + }, { + "name" : "isJoinable", + "in" : "query", + "description" : "Filter the results by whether the team can be joined by any user or not", + "schema" : { + "type" : "boolean" + } + } ], + "responses" : { + "200" : { + "description" : "List of teams with hierarchy", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TeamList" + } + } + } + } + } + } + }, + "/v1/teams/name/{name}" : { + "get" : { + "tags" : [ "Teams" ], + "summary" : "Get a team by name", + "description" : "Get a team by `name`.", + "operationId" : "getTeamByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the team", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,profile,users,owns,defaultRoles,parents,children,policies,userCount,childrenCount,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The team", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" + } + } + } + }, + "404" : { + "description" : "Team for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Teams" ], + "summary" : "Delete a team by name", + "description" : "Delete a team by given `name`.", + "operationId" : "deleteTeamByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the team", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Team for instance {name} is not found" + } + } + } + }, + "/v1/teams/name/{name}/export" : { + "get" : { + "tags" : [ "Teams" ], + "summary" : "Export teams in CSV format", + "operationId" : "exportTeams", + "parameters" : [ { + "name" : "name", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Exported csv with teams information", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + } + } + } + } + } + }, + "/v1/teams/name/{name}/import" : { + "put" : { + "tags" : [ "Teams" ], + "summary" : "Import from CSV to create, and update teams.", + "operationId" : "importTeams", + "parameters" : [ { + "name" : "name", + "in" : "path", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "dryRun", + "in" : "query", + "description" : "Dry-run when true is used for validating the CSV without really importing it. (default=true)", + "schema" : { + "type" : "boolean", + "default" : true + } + } ], + "requestBody" : { + "content" : { + "text/plain" : { + "schema" : { + "type" : "string" + } } } - ], - "responses": { - "200": { - "description": "List of dashboard service instances", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardServiceList" + }, + "responses" : { + "200" : { + "description" : "Import result", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CsvImportResult" } } } } } - }, - "put": { - "tags": ["Dashboard Services"], - "summary": "Update a dashboard service", - "description": "Update an existing dashboard service identified by `Id`.", - "operationId": "createOrUpdateDashboardService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDashboardService" + } + }, + "/v1/teams/restore" : { + "put" : { + "tags" : [ "Teams" ], + "summary" : "Restore a soft deleted team", + "description" : "Restore a soft deleted team.", + "operationId" : "restore_30", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" + } + } + } + }, + "responses" : { + "200" : { + "description" : "Successfully restored the Team ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" + } + } + } + } + } + } + }, + "/v1/teams/{id}" : { + "get" : { + "tags" : [ "Teams" ], + "summary" : "Get a team by id", + "description" : "Get a team by `id`.", + "operationId" : "getTeamByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the team", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,profile,users,owns,defaultRoles,parents,children,policies,userCount,childrenCount,domain" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The team", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" + } + } + } + }, + "404" : { + "description" : "Team for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Teams" ], + "summary" : "Delete a team by id", + "description" : "Delete a team by given `id`.", + "operationId" : "deleteTeam", + "parameters" : [ { + "name" : "recursive", + "in" : "query", + "description" : "Recursively delete this team and it's children. (Default `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the team", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Team for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Teams" ], + "summary" : "Update a team", + "description" : "Update an existing team with JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchTeam", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the team", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } + } + } + } + } + }, + "/v1/teams/{id}/versions" : { + "get" : { + "tags" : [ "Teams" ], + "summary" : "List team versions", + "description" : "Get a list of all the versions of a team identified by `id`", + "operationId" : "listAllTeamVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the team", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "List of team versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" + } + } + } + } + } + } + }, + "/v1/teams/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Teams" ], + "summary" : "Get a version of the team", + "description" : "Get a version of the team by given `id`", + "operationId" : "getSpecificTeamVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the team", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "version", + "in" : "path", + "description" : "Team version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "team", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" + } + } + } + }, + "404" : { + "description" : "Team for instance {id} and version {version} is not found" + } + } + } + }, + "/v1/topics" : { + "get" : { + "tags" : [ "Topics" ], + "summary" : "List topics", + "description" : "Get a list of topics, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listTopics", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,extension,domain,dataProducts" + } + }, { + "name" : "service", + "in" : "query", + "description" : "Filter topics by service name", + "schema" : { + "type" : "string", + "example" : "kafkaWestCoast" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number topics returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of topics before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of topics after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "List of topics", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TopicList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Topics" ], + "summary" : "Update topic", + "description" : "Create a topic, it it does not exist or update an existing topic.", + "operationId" : "createOrUpdateTopic", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTopic" } } } }, - "responses": { - "200": { - "description": "Dashboard service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardService" + "responses" : { + "200" : { + "description" : "The updated topic ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Topic" } } } - }, - "400": { - "description": "Bad request" } } }, - "post": { - "tags": ["Dashboard Services"], - "summary": "Create a dashboard service", - "description": "Create a new dashboard service.", - "operationId": "createDashboardService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDashboardService" + "post" : { + "tags" : [ "Topics" ], + "summary" : "Create a topic", + "description" : "Create a topic under an existing `service`.", + "operationId" : "createTopic", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTopic" } } } }, - "responses": { - "200": { - "description": "Dashboard service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardService" - } - } + "responses" : { + "200" : { + "description" : "The topic", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Topic" + } + } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/dashboardServices/name/{name}": { - "get": { - "tags": ["Dashboard Services"], - "summary": "Get dashboard service by name", - "description": "Get a dashboard service by the service `name`.", - "operationId": "getDashboardServiceByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the dashboard service", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/topics/name/{fqn}" : { + "get" : { + "tags" : [ "Topics" ], + "summary" : "Get a topic by fully qualified name", + "description" : "Get a topic by fully qualified name.", + "operationId" : "getTopicByFQN", + "parameters" : [ { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the topic", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "Dashboard service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardService" + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,extension,domain,dataProducts" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The topic", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Topic" } } } }, - "404": { - "description": "Dashboard service for instance {name} is not found" + "404" : { + "description" : "Topic for instance {fqn} is not found" } } }, - "delete": { - "tags": ["Dashboard Services"], - "summary": "Delete a dashboard service by name", - "description": "Delete a Dashboard services by `name`. If dashboard (and charts) belong to the service, it can't be deleted.", - "operationId": "deleteDashboardServiceByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the dashboard service", - "required": true, - "schema": { - "type": "string" - } + "delete" : { + "tags" : [ "Topics" ], + "summary" : "Delete a topic by fully qualified name", + "description" : "Delete a topic by `fullyQualifiedName`.", + "operationId" : "deleteTopicByFQN", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the topic", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "OK" + } ], + "responses" : { + "200" : { + "description" : "OK" }, - "404": { - "description": "DashboardService service for instance {name} is not found" + "404" : { + "description" : "Topic for instance {fqn} is not found" } } } }, - "/v1/services/dashboardServices/restore": { - "put": { - "tags": ["Dashboard Services"], - "summary": "Restore a soft deleted dashboard service", - "description": "Restore a soft deleted dashboard service.", - "operationId": "restore_16", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/topics/restore" : { + "put" : { + "tags" : [ "Topics" ], + "summary" : "Restore a soft deleted topic", + "description" : "Restore a soft deleted topic.", + "operationId" : "restore_32", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Chart ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardService" - } - } + "responses" : { + "200" : { + "description" : "Successfully restored the Topic. ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Topic" + } + } + } + } + } + } + }, + "/v1/topics/{id}" : { + "get" : { + "tags" : [ "Topics" ], + "summary" : "Get a topic by id", + "description" : "Get a topic by `id`.", + "operationId" : "get_7", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "owner,followers,tags,extension,domain,dataProducts" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The topic", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Topic" + } + } + } + }, + "404" : { + "description" : "Topic for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Topics" ], + "summary" : "Delete a topic by id", + "description" : "Delete a topic by `id`.", + "operationId" : "deleteTopic", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "Topic for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Topics" ], + "summary" : "Update a topic", + "description" : "Update an existing topic using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchTopic", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" + }, + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + } + } + }, + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/services/dashboardServices/{id}": { - "get": { - "tags": ["Dashboard Services"], - "summary": "Get a dashboard service by Id", - "description": "Get a dashboard service by `Id`.", - "operationId": "getDashboardServiceByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/topics/{id}/followers" : { + "put" : { + "tags" : [ "Topics" ], + "summary" : "Add a follower", + "description" : "Add a user identified by `userId` as followed of this topic", + "operationId" : "addFollower_6", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "Id of the user to be added as follower", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "format" : "uuid" + } } } - ], - "responses": { - "200": { - "description": "Dashboard service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardService" + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" } } } }, - "404": { - "description": "Dashboard service for instance {id} is not found" + "404" : { + "description" : "Topic for instance {id} is not found" } } - }, - "delete": { - "tags": ["Dashboard Services"], - "summary": "Delete a dashboard service by Id", - "description": "Delete a Dashboard services. If dashboard (and charts) belong to the service, it can't be deleted.", - "operationId": "deleteDashboardService", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the dashboard service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "DashboardService service for instance {id} is not found" + } + }, + "/v1/topics/{id}/followers/{userId}" : { + "delete" : { + "tags" : [ "Topics" ], + "summary" : "Remove a follower", + "description" : "Remove the user identified `userId` as a follower of the topic.", + "operationId" : "deleteFollower_7", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - } - }, - "patch": { - "tags": ["Dashboard Services"], - "summary": "Update a dashboard service", - "description": "Update an existing dashboard service using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchDashboardService", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } + }, { + "name" : "userId", + "in" : "path", + "description" : "Id of the user being removed as follower", + "required" : true, + "schema" : { + "type" : "string" } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + } ], + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } } } } } }, - "/v1/services/dashboardServices/{id}/testConnectionResult": { - "put": { - "tags": ["Dashboard Services"], - "summary": "Add test connection result", - "description": "Add test connection result to the service.", - "operationId": "addTestConnectionResult", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/topics/{id}/sampleData" : { + "get" : { + "tags" : [ "Topics" ], + "summary" : "Get sample data", + "description" : "Get sample data from the topic.", + "operationId" : "getSampleData_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "Successfully obtained the Topic", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Topic" + } + } } } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestConnectionResult" + } + }, + "put" : { + "tags" : [ "Topics" ], + "summary" : "Add sample data", + "description" : "Add sample data to the topic.", + "operationId" : "addSampleData_2", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TopicSampleData" } } } }, - "responses": { - "200": { - "description": "Successfully updated the service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + "responses" : { + "200" : { + "description" : "The topic", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Topic" } } } @@ -13230,31 +23324,29 @@ } } }, - "/v1/services/dashboardServices/{id}/versions": { - "get": { - "tags": ["Dashboard Services"], - "summary": "List dashboard service versions", - "description": "Get a list of all the versions of a dashboard service identified by `Id`", - "operationId": "listAllDashboardServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/topics/{id}/versions" : { + "get" : { + "tags" : [ "Topics" ], + "summary" : "List topic versions", + "description" : "Get a list of all the versions of a topic identified by `id`", + "operationId" : "listAllTopicVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of dashboard service versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + } ], + "responses" : { + "200" : { + "description" : "List of topic versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } @@ -13262,468 +23354,684 @@ } } }, - "/v1/services/dashboardServices/{id}/versions/{version}": { - "get": { - "tags": ["Dashboard Services"], - "summary": "Get a version of the dashboard service", - "description": "Get a version of the dashboard service by given `Id`", - "operationId": "getSpecificDashboardServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the dashboard service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "dashboard service version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/topics/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Topics" ], + "summary" : "Get a version of the topic", + "description" : "Get a version of the topic by given `id`", + "operationId" : "getSpecificTopicVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the topic", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "dashboard service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DashboardService" + }, { + "name" : "version", + "in" : "path", + "description" : "Topic version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "topic", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Topic" } } } }, - "404": { - "description": "Dashboard service for instance {id} and version {version} is not found" + "404" : { + "description" : "Topic for instance {id} and version {version} is not found" } } } }, - "/v1/services/databaseServices": { - "get": { - "tags": ["Database Services"], - "summary": "List database services", - "description": "Get a list of database services.", - "operationId": "listDatabaseServices", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" + "/v1/topics/{id}/vote" : { + "put" : { + "tags" : [ "Topics" ], + "summary" : "Update Vote for a Entity", + "description" : "Update vote for a Entity", + "operationId" : "updateVoteForEntity_16", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the Entity", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/VoteRequest" + } } - }, - { - "name": "limit", - "in": "query", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 + } + }, + "responses" : { + "200" : { + "description" : "OK", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + } + } + }, + "404" : { + "description" : "model for instance {id} is not found" + } + } + } + }, + "/v1/usage/{entity}/name/{fqn}" : { + "get" : { + "tags" : [ "Usage" ], + "summary" : "Get usage by fully qualified name", + "description" : "Get usage details for an entity identified by fully qualified name.", + "operationId" : "getEntityUsageByFQN", + "parameters" : [ { + "name" : "entity", + "in" : "path", + "description" : "Entity type for which usage is requested", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the entity that uniquely identifies an entity", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "days", + "in" : "query", + "description" : "Usage for number of days going back from the given date (default=1, min=1, max=30)", + "schema" : { + "type" : "integer", + "format" : "int32" + } + }, { + "name" : "date", + "in" : "query", + "description" : "Usage for number of days going back from this date in ISO 8601 format (default = currentDate)", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Entity usage", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityUsage" + } + } + } + }, + "404" : { + "description" : "Entity for instance {fqn} is not found" + } + } + }, + "put" : { + "tags" : [ "Usage" ], + "summary" : "Report usage by fully qualified name", + "description" : "Report usage information for an entity by name on a given date. System stores last 30 days of usage information. Usage information older than 30 days is deleted.", + "operationId" : "reportEntityUsageWithFQN_1", + "parameters" : [ { + "name" : "entity", + "in" : "path", + "description" : "Entity type for which usage is reported", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the entity that uniquely identifies an entity", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Usage information a given date", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DailyCount" + } } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of database services before this cursor", - "schema": { - "type": "string" + } + }, + "responses" : { + "200" : { + "description" : "Usage information", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityUsage" + } + } } }, - { - "name": "after", - "in": "query", - "description": "Returns list of database services after this cursor", - "schema": { - "type": "string" + "400" : { + "description" : "Bad request" + } + } + }, + "post" : { + "tags" : [ "Usage" ], + "summary" : "Report usage by fully qualified name", + "description" : "Report usage information for an entity by name on a given date. System stores last 30 days of usage information. Usage information older than 30 days is deleted.", + "operationId" : "reportEntityUsageWithFQN", + "parameters" : [ { + "name" : "entity", + "in" : "path", + "description" : "Entity type for which usage is reported", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "fqn", + "in" : "path", + "description" : "Fully qualified name of the entity that uniquely identifies an entity", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Usage information a given date", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DailyCount" + } } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + } + }, + "responses" : { + "200" : { + "description" : "Usage information", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityUsage" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/usage/{entity}/{id}" : { + "get" : { + "tags" : [ "Usage" ], + "summary" : "Get usage by id", + "description" : "Get usage details for an entity identified by `id`.", + "operationId" : "getEntityUsageByID", + "parameters" : [ { + "name" : "entity", + "in" : "path", + "description" : "Entity type for which usage is requested", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "id", + "in" : "path", + "description" : "Entity id", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "days", + "in" : "query", + "description" : "Usage for number of days going back from the given date (default=1, min=1, max=30)", + "schema" : { + "type" : "integer", + "format" : "int32" + } + }, { + "name" : "date", + "in" : "query", + "description" : "Usage for number of days going back from this date in ISO 8601 format. (default = currentDate)", + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Entity usage", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityUsage" + } + } + } + }, + "404" : { + "description" : "Entity for instance {id} is not found" + } + } + }, + "put" : { + "tags" : [ "Usage" ], + "summary" : "Report usage", + "description" : "Report usage information for an entity on a given date. System stores last 30 days of usage information. Usage information older than 30 days is deleted.", + "operationId" : "reportEntityUsageWithID_1", + "parameters" : [ { + "name" : "entity", + "in" : "path", + "description" : "Entity type for which usage is reported", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "id", + "in" : "path", + "description" : "Entity id", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Usage information a given date", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DailyCount" + } } } - ], - "responses": { - "200": { - "description": "List of database service instances", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseServiceList" + }, + "responses" : { + "200" : { + "description" : "Usage information", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityUsage" } } } + }, + "400" : { + "description" : "Bad request" } } }, - "put": { - "tags": ["Database Services"], - "summary": "Update database service", - "description": "Update an existing or create a new database service.", - "operationId": "createOrUpdateDatabaseService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDatabaseService" + "post" : { + "tags" : [ "Usage" ], + "summary" : "Report usage", + "description" : "Report usage information for an entity on a given date. System stores last 30 days of usage information. Usage information older than 30 days is deleted.", + "operationId" : "reportEntityUsageWithID", + "parameters" : [ { + "name" : "entity", + "in" : "path", + "description" : "Entity type for which usage is reported", + "required" : true, + "schema" : { + "type" : "string", + "example" : "table, report, metrics, or dashboard" + } + }, { + "name" : "id", + "in" : "path", + "description" : "Entity id", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "description" : "Usage information a given date", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DailyCount" + } + } + } + }, + "responses" : { + "200" : { + "description" : "Usage information", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityUsage" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/users" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "List users", + "description" : "Get a list of users. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", + "operationId" : "listUsers", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "profile,roles,teams,follows,owns,domain,personas,defaultPersona" + } + }, { + "name" : "team", + "in" : "query", + "description" : "Filter users by team", + "schema" : { + "type" : "string", + "example" : "Legal" + } + }, { + "name" : "limit", + "in" : "query", + "description" : "Limit the number users returned. (1 to 1000000, default = 10)", + "schema" : { + "maximum" : 1000000, + "minimum" : 0, + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "before", + "in" : "query", + "description" : "Returns list of users before this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "after", + "in" : "query", + "description" : "Returns list of users after this cursor", + "schema" : { + "type" : "string" + } + }, { + "name" : "isAdmin", + "in" : "query", + "description" : "Returns list of admin users if set to true", + "schema" : { + "type" : "boolean" + } + }, { + "name" : "isBot", + "in" : "query", + "description" : "Returns list of bot users if set to true", + "schema" : { + "type" : "boolean" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UserList" + } + } + } + } + } + }, + "put" : { + "tags" : [ "Users" ], + "summary" : "Update user", + "description" : "Create or Update a user.", + "operationId" : "createOrUpdateUser", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateUser" } } } }, - "responses": { - "200": { - "description": "Database service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateUser" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } }, - "post": { - "tags": ["Database Services"], - "summary": "Create database service", - "description": "Create a new database service.", - "operationId": "createDatabaseService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateDatabaseService" + "post" : { + "tags" : [ "Users" ], + "summary" : "Create a user", + "description" : "Create a new user.", + "operationId" : "createUser", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateUser" } } } }, - "responses": { - "200": { - "description": "Database service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/databaseServices/name/{name}": { - "get": { - "tags": ["Database Services"], - "summary": "Get database service by name", - "description": "Get a database service by the service `name`.", - "operationId": "getDatabaseServiceByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the database service", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/users/auth-mechanism/{id}" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get Authentication Mechanism for a Bot User", + "description" : "Get Authentication Mechanism for a Bot User.", + "operationId" : "getAuthenticationMechanismBotUser", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the user", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "Database service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + } ], + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AuthenticationMechanism" } } } }, - "404": { - "description": "Database service for instance {name} is not found" + "400" : { + "description" : "Bad request" } } - }, - "delete": { - "tags": ["Database Services"], - "summary": "Delete a database service by name", - "description": "Delete a database services by `name`. If databases (and tables) belong the service, it can't be deleted.", - "operationId": "deleteDatabaseServiceByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the database service", - "required": true, - "schema": { - "type": "string" + } + }, + "/v1/users/changePassword" : { + "put" : { + "tags" : [ "Users" ], + "summary" : "Change Password For User", + "description" : "Create a new user.", + "operationId" : "changeUserPassword", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ChangePasswordRequest" + } } } - ], - "responses": { - "200": { - "description": "OK" + }, + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" + } + } + } }, - "404": { - "description": "DatabaseService service for instance {name} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/databaseServices/restore": { - "put": { - "tags": ["Database Services"], - "summary": "Restore a soft deleted database service", - "description": "Restore a soft deleted database service.", - "operationId": "restore_17", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "/v1/users/checkEmailInUse" : { + "post" : { + "tags" : [ "Users" ], + "summary" : "Check if a email is already in use", + "description" : "Check if a email is already in use", + "operationId" : "checkEmailInUse", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EmailRequest" } } } }, - "responses": { - "200": { - "description": "Successfully restored the DatabaseService.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + "responses" : { + "200" : { + "description" : "Return true or false", + "content" : { + "application/json" : { + "schema" : { + "type" : "boolean" } } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/databaseServices/{id}": { - "get": { - "tags": ["Database Services"], - "summary": "Get a database service", - "description": "Get a database service by `Id`.", - "operationId": "getDatabaseServiceByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the database service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/users/checkEmailVerified" : { + "post" : { + "tags" : [ "Users" ], + "summary" : "Check if a mail is verified", + "description" : "Check if a mail is already in use", + "operationId" : "checkEmailIsVerified", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EmailRequest" + } } } - ], - "responses": { - "200": { - "description": "Database service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + }, + "responses" : { + "200" : { + "description" : "Return true or false", + "content" : { + "application/json" : { + "schema" : { + "type" : "boolean" } } } }, - "404": { - "description": "Database service for instance {id} is not found" - } - } - }, - "delete": { - "tags": ["Database Services"], - "summary": "Delete a database service by Id", - "description": "Delete a database services. If databases (and tables) belong the service, it can't be deleted.", - "operationId": "deleteDatabaseService", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the database service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "DatabaseService service for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Database Services"], - "summary": "Update a database service", - "description": "Update an existing database service using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchDatabaseService", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the database service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/databaseServices/{id}/testConnectionResult": { - "put": { - "tags": ["Database Services"], - "summary": "Add test connection result", - "description": "Add test connection result to the service.", - "operationId": "addTestConnectionResult_1", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestConnectionResult" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully updated the service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + "/v1/users/documentation/csv" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get CSV documentation for user import/export", + "operationId" : "getCsvDocumentation_2", + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" } } } @@ -13731,31 +24039,27 @@ } } }, - "/v1/services/databaseServices/{id}/versions": { - "get": { - "tags": ["Database Services"], - "summary": "List database service versions", - "description": "Get a list of all the versions of a database service identified by `Id`", - "operationId": "listAllDatabaseServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the database service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/users/export" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Export users in a team in CSV format", + "operationId" : "exportUsers", + "parameters" : [ { + "name" : "team", + "in" : "query", + "description" : "Name of the team to under which the users are imported to", + "required" : true, + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of database service versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + } ], + "responses" : { + "200" : { + "description" : "Exported csv with user information", + "content" : { + "application/json" : { + "schema" : { + "type" : "string" } } } @@ -13763,970 +24067,811 @@ } } }, - "/v1/services/databaseServices/{id}/versions/{version}": { - "get": { - "tags": ["Database Services"], - "summary": "Get a version of the database service", - "description": "Get a version of the database service by given `Id`", - "operationId": "getSpecificDatabaseServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the database service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "database service version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "database service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" - } + "/v1/users/generatePasswordResetLink" : { + "post" : { + "tags" : [ "Users" ], + "summary" : "Generate Password Reset Link", + "description" : "Generate Password Reset Link", + "operationId" : "generatePasswordResetLink", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EmailRequest" } } + } + }, + "responses" : { + "200" : { + "description" : "The user " }, - "404": { - "description": "Database service for instance {id} and version {version} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/messagingServices": { - "get": { - "tags": ["Messaging Services"], - "summary": "List messaging services", - "description": "Get a list of messaging services. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listMessagingService", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit number services returned. (1 to 1000000, default 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of services before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of services after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "List of messaging services", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessagingServiceList" - } - } - } + "/v1/users/generateRandomPwd" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Generate a random password", + "description" : "Generate a random password", + "operationId" : "generateRandomPwd", + "responses" : { + "200" : { + "description" : "Random pwd" } } - }, - "put": { - "tags": ["Messaging Services"], - "summary": "Update messaging service", - "description": "Create a new messaging service or Update an existing messaging service identified by `id`.", - "operationId": "createOrUpdateMessagingService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMessagingService" + } + }, + "/v1/users/generateToken/{id}" : { + "put" : { + "tags" : [ "Users" ], + "summary" : "Generate JWT Token for a Bot User", + "description" : "Generate JWT Token for a Bot User.", + "operationId" : "generateJWTTokenForBotUser", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the user", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/GenerateTokenRequest" } } } }, - "responses": { - "200": { - "description": "Messaging service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessagingService" + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "type" : "string", + "enum" : [ "OneHour", "1", "7", "30", "60", "90", "Unlimited" ] } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } - }, - "post": { - "tags": ["Messaging Services"], - "summary": "Create a messaging service", - "description": "Create a new messaging service.", - "operationId": "createMessagingService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMessagingService" + } + }, + "/v1/users/import" : { + "put" : { + "tags" : [ "Users" ], + "summary" : "Import from CSV to create, and update teams.", + "operationId" : "importTeams_1", + "parameters" : [ { + "name" : "team", + "in" : "query", + "description" : "Name of the team to under which the users are imported to", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "dryRun", + "in" : "query", + "description" : "Dry-run when true is used for validating the CSV without really importing it. (default=true)", + "schema" : { + "type" : "boolean", + "default" : true + } + } ], + "requestBody" : { + "content" : { + "text/plain" : { + "schema" : { + "type" : "string" } } } }, - "responses": { - "200": { - "description": "Messaging service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessagingService" + "responses" : { + "200" : { + "description" : "Import result", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CsvImportResult" } } } - }, - "400": { - "description": "Bad request" } } } }, - "/v1/services/messagingServices/name/{name}": { - "get": { - "tags": ["Messaging Services"], - "summary": "Get messaging service by name", - "description": "Get a messaging service by the service `name`.", - "operationId": "getMessagingServiceByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the messaging service", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/users/loggedInUser" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get current logged in user", + "description" : "Get the user who is authenticated and is currently logged in.", + "operationId" : "getCurrentLoggedInUser", + "parameters" : [ { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "profile,roles,teams,follows,owns,domain,personas,defaultPersona" } - ], - "responses": { - "200": { - "description": "Messaging service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessagingService" + } ], + "responses" : { + "200" : { + "description" : "The user", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" } } } }, - "404": { - "description": "Messaging service for instance {name} is not found" - } - } - }, - "delete": { - "tags": ["Messaging Services"], - "summary": "Delete a messaging service by name", - "description": "Delete a messaging service by `name`. If topics belong the service, it can't be deleted.", - "operationId": "deleteMessagingServiceByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the messaging service", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "MessagingService service for instance {name} is not found" + "404" : { + "description" : "User not found" } } } }, - "/v1/services/messagingServices/restore": { - "put": { - "tags": ["Messaging Services"], - "summary": "Restore a soft deleted messaging service", - "description": "Restore a soft deleted messaging service.", - "operationId": "restore_18", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully restored the MessagingService ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessagingService" + "/v1/users/loggedInUser/groupTeams" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get group type of teams for current logged in user", + "description" : "Get the group type of teams of user who is authenticated and is currently logged in.", + "operationId" : "getCurrentLoggedInUserGroupTeams", + "responses" : { + "200" : { + "description" : "The teams of type 'Group' that a user belongs to", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } } } } + }, + "404" : { + "description" : "User not found" } } } }, - "/v1/services/messagingServices/{id}": { - "get": { - "tags": ["Messaging Services"], - "summary": "Get a messaging service by Id", - "description": "Get a messaging service by `Id`.", - "operationId": "getMessagingServiceByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the messaging service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/users/login" : { + "post" : { + "tags" : [ "Users" ], + "summary" : "Login User with email (plain-text) and Password (encoded in base 64)", + "description" : "Login User with email(plain-text) and Password (encoded in base 64)", + "operationId" : "loginUserWithPwd", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/LoginRequest" + } } } - ], - "responses": { - "200": { - "description": "Messaging service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessagingService" + }, + "responses" : { + "200" : { + "description" : "Returns the Jwt Token Response ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/JwtResponse" } } } }, - "404": { - "description": "Messaging service for instance {id} is not found" - } - } - }, - "delete": { - "tags": ["Messaging Services"], - "summary": "Delete a messaging service by Id", - "description": "Delete a messaging service. If topics belong the service, it can't be deleted.", - "operationId": "deleteMessagingService", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the messaging service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "MessagingService service for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Messaging Services"], - "summary": "Update a messaging service", - "description": "Update an existing messaging service using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchMessagingService", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the messaging service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/messagingServices/{id}/testConnectionResult": { - "put": { - "tags": ["Messaging Services"], - "summary": "Add test connection result", - "description": "Add test connection result to the service.", - "operationId": "addTestConnectionResult_2", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/users/logout" : { + "post" : { + "tags" : [ "Users" ], + "summary" : "Logout a User(Only called for saml and basic Auth)", + "description" : "Logout a User(Only called for saml and basic Auth)", + "operationId" : "logoutUser", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/LogoutRequest" + } } } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestConnectionResult" + }, + "responses" : { + "200" : { + "description" : "The user " + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/users/name/{name}" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get a user by name", + "description" : "Get a user by `name`.", + "operationId" : "getUserByFQN", + "parameters" : [ { + "name" : "name", + "in" : "path", + "description" : "Name of the user", + "required" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "profile,roles,teams,follows,owns,domain,personas,defaultPersona" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The user", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" + } + } + } + }, + "404" : { + "description" : "User for instance {name} is not found" + } + } + }, + "delete" : { + "tags" : [ "Users" ], + "summary" : "Delete a user", + "description" : "Users can't be deleted but are soft-deleted.", + "operationId" : "deleteUserByName", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "name", + "in" : "path", + "description" : "Name of the user", + "required" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "User for instance {name} is not found" + } + } + } + }, + "/v1/users/password/reset" : { + "post" : { + "tags" : [ "Users" ], + "summary" : "Reset Password For User", + "description" : "Reset User Password", + "operationId" : "resetUserPassword", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PasswordResetRequest" } } } }, - "responses": { - "200": { - "description": "Successfully updated the service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" } } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/messagingServices/{id}/versions": { - "get": { - "tags": ["Messaging Services"], - "summary": "List messaging service versions", - "description": "Get a list of all the versions of a messaging service identified by `id`", - "operationId": "listAllMessagingServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the messaging service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "/v1/users/refresh" : { + "post" : { + "tags" : [ "Users" ], + "summary" : "Provide access token to User with refresh token", + "description" : "Provide access token to User with refresh token", + "operationId" : "refreshToken", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TokenRefreshRequest" + } } } - ], - "responses": { - "200": { - "description": "List of messaging service versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/JwtResponse" } } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/messagingServices/{id}/versions/{version}": { - "get": { - "tags": ["Messaging Services"], - "summary": "Get a version of the messaging service", - "description": "Get a version of the messaging service by given `Id`", - "operationId": "getSpecificMessagingServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the messaging service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "messaging service version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } + "/v1/users/registrationConfirmation" : { + "put" : { + "tags" : [ "Users" ], + "summary" : "Confirm User Email", + "description" : "Confirm User Email", + "operationId" : "confirmUserEmail", + "parameters" : [ { + "name" : "token", + "in" : "query", + "description" : "Token sent for Email Confirmation", + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "messaging service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessagingService" - } - } - } + } ], + "responses" : { + "200" : { + "description" : "The user " }, - "404": { - "description": "Messaging service for instance {id} and version {version} is not found" + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/metadataServices": { - "get": { - "tags": ["Metadata Services"], - "summary": "List metadata services", - "description": "Get a list of metadata services.", - "operationId": "listMetadataServices", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of metadata services before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of metadata services after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/users/resendRegistrationToken" : { + "put" : { + "tags" : [ "Users" ], + "summary" : "Resend Registration Token", + "description" : "Resend Registration Token", + "operationId" : "resendRegistrationToken", + "parameters" : [ { + "name" : "user", + "in" : "query", + "description" : "Token sent for Email Confirmation Earlier", + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of Metadata Service instances", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataServiceList" - } - } - } + } ], + "responses" : { + "200" : { + "description" : "The user " + }, + "400" : { + "description" : "Bad request" } } - }, - "put": { - "tags": ["Metadata Services"], - "summary": "Update metadata service", - "description": "Update an existing or create a new Metadata Service.", - "operationId": "createOrUpdateMetadataService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMetadataService" + } + }, + "/v1/users/restore" : { + "put" : { + "tags" : [ "Users" ], + "summary" : "Restore a soft deleted User.", + "description" : "Restore a soft deleted User.", + "operationId" : "restore_31", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RestoreEntity" } } } }, - "responses": { - "200": { - "description": "Metadata Service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataService" + "responses" : { + "200" : { + "description" : "Successfully restored the User ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" } } } - }, - "400": { - "description": "Bad request" } } - }, - "post": { - "tags": ["Metadata Services"], - "summary": "Create metadata service", - "description": "Create a new Metadata Service.", - "operationId": "createMetadataService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMetadataService" + } + }, + "/v1/users/revokeToken" : { + "put" : { + "tags" : [ "Users" ], + "summary" : "Revoke JWT Token for a Bot User", + "description" : "Revoke JWT Token for a Bot User.", + "operationId" : "revokeJWTTokenForBotUser", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RevokeTokenRequest" } } } }, - "responses": { - "200": { - "description": "Metadata Service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataService" + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/JWTAuthMechanism" } } } }, - "400": { - "description": "Bad request" + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/metadataServices/name/{name}": { - "get": { - "tags": ["Metadata Services"], - "summary": "Get a metadata service by name", - "description": "Get a Metadata Service by the service `name`.", - "operationId": "getMetadataServiceByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the metadata service", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "/v1/users/security/token" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get personal access token to User", + "description" : "Get a personal access token", + "operationId" : "getPersonalAccessToken", + "parameters" : [ { + "name" : "username", + "in" : "query", + "description" : "User Name of the User for which to get. (Default = `false`)", + "schema" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "Metadata Service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataService" + } ], + "responses" : { + "200" : { + "description" : "List Of Personal Access Tokens ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PersonalAccessTokenList" } } } }, - "404": { - "description": "Metadata Service for instance {name} is not found" + "400" : { + "description" : "Bad request" } } }, - "delete": { - "tags": ["Metadata Services"], - "summary": "Delete a metadata service by name", - "description": "Delete a metadata services by `name`. If some service belong the service, it can't be deleted.", - "operationId": "deleteMetadataServiceByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the metadata service", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "MetadataService service for instance {name} is not found" - } - } - } - }, - "/v1/services/metadataServices/restore": { - "put": { - "tags": ["Metadata Services"], - "summary": "Restore a soft deleted metadata service.", - "description": "Restore a soft deleted metadata service.", - "operationId": "restore_19", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" + "put" : { + "tags" : [ "Users" ], + "summary" : "Provide access token to User", + "description" : "Provide access token to User", + "operationId" : "createPersonalAccessToken", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePersonalToken" } } } }, - "responses": { - "200": { - "description": "Successfully restored the Table ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PersonalAccessToken" } } } + }, + "400" : { + "description" : "Bad request" } } } }, - "/v1/services/metadataServices/{id}": { - "get": { - "tags": ["Metadata Services"], - "summary": "Get a metadata service by Id", - "description": "Get a Metadata Service by `Id`.", - "operationId": "getMetadataServiceByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the metadata service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "/v1/users/security/token/revoke" : { + "put" : { + "tags" : [ "Users" ], + "summary" : "Revoke personal access token to User", + "description" : "Revoke personal access token", + "operationId" : "revokePersonalAccessToken", + "parameters" : [ { + "name" : "username", + "in" : "query", + "description" : "Username in case admin is revoking. (Default = `false`)", + "schema" : { + "type" : "string" + } + }, { + "name" : "removeAll", + "in" : "query", + "description" : "Remove All tokens of the user. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RevokePersonalTokenRequest" + } } } - ], - "responses": { - "200": { - "description": "Metadata Service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataService" + }, + "responses" : { + "200" : { + "description" : "The Personal access token ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PersonalAccessTokenList" } } } }, - "404": { - "description": "Metadata Service for instance {id} is not found" + "400" : { + "description" : "Bad request" } } - }, - "delete": { - "tags": ["Metadata Services"], - "summary": "Delete a metadata service by Id", - "description": "Delete a metadata services. If some service belong the service, it can't be deleted.", - "operationId": "deleteMetadataService", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the metadata service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + } + }, + "/v1/users/signup" : { + "post" : { + "tags" : [ "Users" ], + "summary" : "Register User", + "description" : "Register a new User", + "operationId" : "registerUser", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RegistrationRequest" + } } } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "MetadataService service for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Metadata Services"], - "summary": "Update a metadata service", - "description": "Update an existing Metadata service using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchMetadataService", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the metadata service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" + }, + "responses" : { + "200" : { + "description" : "The user " + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/users/token/{id}" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get JWT Token for a Bot User", + "description" : "Get JWT Token for a Bot User.", + "operationId" : "getJWTTokenForBotUser", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the user", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "The user ", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/JWTAuthMechanism" + } + } + } + }, + "400" : { + "description" : "Bad request" + } + } + } + }, + "/v1/users/{id}" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get a user", + "description" : "Get a user by `id`", + "operationId" : "getUserByID", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the user", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + }, { + "name" : "fields", + "in" : "query", + "description" : "Fields requested in the returned resource", + "schema" : { + "type" : "string", + "example" : "profile,roles,teams,follows,owns,domain,personas,defaultPersona" + } + }, { + "name" : "include", + "in" : "query", + "description" : "Include all, deleted, or non-deleted entities.", + "schema" : { + "type" : "string", + "default" : "non-deleted", + "enum" : [ "all", "deleted", "non-deleted" ] + } + } ], + "responses" : { + "200" : { + "description" : "The user", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" + } + } + } + }, + "404" : { + "description" : "User for instance {id} is not found" + } + } + }, + "delete" : { + "tags" : [ "Users" ], + "summary" : "Delete a user", + "description" : "Users can't be deleted but are soft-deleted.", + "operationId" : "deleteUser", + "parameters" : [ { + "name" : "hardDelete", + "in" : "query", + "description" : "Hard delete the entity. (Default = `false`)", + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "id", + "in" : "path", + "description" : "Id of the user", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "responses" : { + "200" : { + "description" : "OK" + }, + "404" : { + "description" : "User for instance {id} is not found" + } + } + }, + "patch" : { + "tags" : [ "Users" ], + "summary" : "Update a user", + "description" : "Update an existing user using JsonPatch.", + "externalDocs" : { + "description" : "JsonPatch RFC", + "url" : "https://tools.ietf.org/html/rfc6902" + }, + "operationId" : "patchUser", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the user", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" + } + } ], + "requestBody" : { + "description" : "JsonPatch with array of operations", + "content" : { + "application/json-patch+json" : { + "schema" : { + "type" : "object" }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "example" : "[{op:remove, path:/a},{op:add, path: /b, value: val}]" } } }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "responses" : { + "default" : { + "description" : "default response", + "content" : { + "application/json" : { } } } } } }, - "/v1/services/metadataServices/{id}/testConnectionResult": { - "put": { - "tags": ["Metadata Services"], - "summary": "Add test connection result", - "description": "Add test connection result to the service.", - "operationId": "addTestConnectionResult_3", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestConnectionResult" - } - } + "/v1/users/{id}/versions" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "List user versions", + "description" : "Get a list of all the versions of a user identified by `id`", + "operationId" : "listAllUserVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the user", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - }, - "responses": { - "200": { - "description": "Successfully updated the service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" + } ], + "responses" : { + "200" : { + "description" : "List of user versions", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EntityHistory" } } } @@ -14734,17201 +24879,14320 @@ } } }, - "/v1/services/metadataServices/{id}/versions": { - "get": { - "tags": ["Metadata Services"], - "summary": "List metadata service versions", - "description": "Get a list of all the versions of a Metadata Service identified by `Id`", - "operationId": "listAllMetadataServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the metadata service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "/v1/users/{id}/versions/{version}" : { + "get" : { + "tags" : [ "Users" ], + "summary" : "Get a version of the user", + "description" : "Get a version of the user by given `id`", + "operationId" : "getSpecificUserVersion", + "parameters" : [ { + "name" : "id", + "in" : "path", + "description" : "Id of the user", + "required" : true, + "schema" : { + "type" : "string", + "format" : "uuid" } - ], - "responses": { - "200": { - "description": "List of Metadata Service versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" + }, { + "name" : "version", + "in" : "path", + "description" : "User version number in the form `major`.`minor`", + "required" : true, + "schema" : { + "type" : "string", + "example" : "0.1 or 1.1" + } + } ], + "responses" : { + "200" : { + "description" : "user", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" } } } + }, + "404" : { + "description" : "User for instance {id} and version {version} is not found" } } } - }, - "/v1/services/metadataServices/{id}/versions/{version}": { - "get": { - "tags": ["Metadata Services"], - "summary": "Get a version of the metadata service", - "description": "Get a version of the Metadata Service by given `Id`", - "operationId": "getSpecificMetadataServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the metadata service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + } + }, + "components" : { + "schemas" : { + "AccessDetails" : { + "required" : [ "timestamp" ], + "type" : "object", + "properties" : { + "accessedBy" : { + "$ref" : "#/components/schemas/EntityReference" }, - { - "name": "version", - "in": "path", - "description": "Metadata Service version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "Metadata Service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetadataService" - } - } - } + "accessedByAProcess" : { + "type" : "string" }, - "404": { - "description": "Metadata Service for instance {id} and version {version} is not found" + "timestamp" : { + "type" : "integer", + "format" : "int64" } } - } - }, - "/v1/services/mlmodelServices": { - "get": { - "tags": ["ML Model Services"], - "summary": "List ML model services", - "description": "Get a list of mlModel services. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listMlModelService", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit number services returned. (1 to 1000000, default 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } + }, + "AddLineage" : { + "required" : [ "edge" ], + "type" : "object", + "properties" : { + "edge" : { + "$ref" : "#/components/schemas/EntitiesEdge" + } + } + }, + "Aggregation" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" }, - { - "name": "before", - "in": "query", - "description": "Returns list of services before this cursor", - "schema": { - "type": "string" + "metadata" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" } }, - { - "name": "after", - "in": "query", - "description": "Returns list of services after this cursor", - "schema": { - "type": "string" - } + "name" : { + "type" : "string" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } + "type" : { + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of mlModel services", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModelServiceList" - } - } + } + }, + "AggregationProfileShardResult" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" + }, + "profileResults" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ProfileResult" } } } }, - "put": { - "tags": ["ML Model Services"], - "summary": "Update ML model service", - "description": "Create a new mlModel service or update an existing mlModel service identified by `Id`.", - "operationId": "createOrUpdateMlModelService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMlModelService" - } + "Aggregations" : { + "type" : "object", + "properties" : { + "asMap" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/Aggregation" } + }, + "fragment" : { + "type" : "boolean" } - }, - "responses": { - "200": { - "description": "MlModel service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModelService" - } - } - } + } + }, + "AnnouncementDetails" : { + "required" : [ "endTime", "startTime" ], + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "endTime" : { + "type" : "integer", + "format" : "int64" }, - "400": { - "description": "Bad request" + "startTime" : { + "type" : "integer", + "format" : "int64" } } }, - "post": { - "tags": ["ML Model Services"], - "summary": "Create an ML model service", - "description": "Create a new mlModel service.", - "operationId": "createMlModelService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateMlModelService" - } + "App" : { + "required" : [ "appSchedule", "appType", "className", "id", "name", "permission", "runtime", "scheduleType" ], + "type" : "object", + "properties" : { + "appConfiguration" : { + "type" : "object" + }, + "appLogoUrl" : { + "type" : "string", + "format" : "uri" + }, + "appSchedule" : { + "$ref" : "#/components/schemas/AppSchedule" + }, + "appScreenshots" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" } - } - }, - "responses": { - "200": { - "description": "MlModel service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModelService" - } - } + }, + "appType" : { + "type" : "string", + "enum" : [ "internal", "external" ] + }, + "bot" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/services/mlmodelServices/name/{name}": { - "get": { - "tags": ["ML Model Services"], - "summary": "Get an ML model service by name", - "description": "Get a mlModel service by the service `name`.", - "operationId": "getMlModelServiceByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the ML Model service", - "required": true, - "schema": { - "type": "string" + "className" : { + "type" : "string" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "developer" : { + "type" : "string" + }, + "developerUrl" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" + "extension" : { + "type" : "object" + }, + "features" : { + "type" : "string" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "openMetadataServerConnection" : { + "$ref" : "#/components/schemas/OpenMetadataConnection" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "permission" : { + "type" : "string", + "enum" : [ "All" ] + }, + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - ], - "responses": { - "200": { - "description": "MlModel service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModelService" - } - } + }, + "privacyPolicyUrl" : { + "type" : "string" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "runtime" : { + "type" : "object" + }, + "scheduleType" : { + "type" : "string", + "enum" : [ "Live", "Scheduled" ] + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "supportEmail" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "404": { - "description": "MlModel service for instance {name} is not found" + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "delete": { - "tags": ["ML Model Services"], - "summary": "Delete an ML model service by name", - "description": "Delete a mlModel services by `name`. If mlModels (and tasks) belong to the service, it can't be deleted.", - "operationId": "deleteMlModelServiceByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false + "AppList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/App" } }, - { - "name": "name", - "in": "path", - "description": "Name of the ML Model service", - "required": true, - "schema": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "MlModel service for instance {name} is not found" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } - } - }, - "/v1/services/mlmodelServices/restore": { - "put": { - "tags": ["ML Model Services"], - "summary": "Restore a soft deleted ML model service", - "description": "Restore a soft deleted Ml model service.", - "operationId": "restore_20", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully restored the MlModelService ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModelService" - } - } - } - } - } - } - }, - "/v1/services/mlmodelServices/{id}": { - "get": { - "tags": ["ML Model Services"], - "summary": "Get an ML model service by Id", - "description": "Get a mlModel service by `Id`.", - "operationId": "getMlModelServiceByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, + "AppMarketPlaceDefinition" : { + "required" : [ "appType", "className", "id", "name", "permission", "scheduleType" ], + "type" : "object", + "properties" : { + "appConfiguration" : { + "type" : "object" }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" - } + "appLogoUrl" : { + "type" : "string", + "format" : "uri" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "MlModel service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModelService" - } - } + "appScreenshots" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" } }, - "404": { - "description": "MlModel service for instance {id} is not found" - } - } - }, - "delete": { - "tags": ["ML Model Services"], - "summary": "Delete an ML model service by Id", - "description": "Delete a mlModel services. If mlModels (and tasks) belong to the service, it can't be deleted.", - "operationId": "deleteMlModelService", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } + "appType" : { + "type" : "string", + "enum" : [ "internal", "external" ] }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - { - "name": "id", - "in": "path", - "description": "Id of the ML Model service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - ], - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "MlModel service for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["ML Model Services"], - "summary": "Update an ML model service", - "description": "Update an existing MlModelService service using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchMlModelService", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + "className" : { + "type" : "string" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "developer" : { + "type" : "string" + }, + "developerUrl" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - } - } - }, - "/v1/services/mlmodelServices/{id}/testConnectionResult": { - "put": { - "tags": ["ML Model Services"], - "summary": "Add test connection result", - "description": "Add test connection result to the service.", - "operationId": "addTestConnectionResult_4", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "extension" : { + "type" : "object" + }, + "features" : { + "type" : "string" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestConnectionResult" - } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "permission" : { + "type" : "string", + "enum" : [ "All" ] + }, + "privacyPolicyUrl" : { + "type" : "string" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - }, - "responses": { - "200": { - "description": "Successfully updated the service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" - } - } + }, + "runtime" : { + "type" : "object" + }, + "scheduleType" : { + "type" : "string", + "enum" : [ "Live", "Scheduled" ] + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "supportEmail" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } - } - }, - "/v1/services/mlmodelServices/{id}/versions": { - "get": { - "tags": ["ML Model Services"], - "summary": "List ML model service versions", - "description": "Get a list of all the versions of a mlModel service identified by `Id`", - "operationId": "listAllMlModelServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "AppMarketPlaceDefinitionList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/AppMarketPlaceDefinition" } - } - ], - "responses": { - "200": { - "description": "List of mlModel service versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } + }, + "paging" : { + "$ref" : "#/components/schemas/Paging" } } - } - }, - "/v1/services/mlmodelServices/{id}/versions/{version}": { - "get": { - "tags": ["ML Model Services"], - "summary": "Get a version of the ML model service", - "description": "Get a version of the mlModel service by given `Id`", - "operationId": "getSpecificMlModelService", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the ML Model service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "AppRunList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/AppRunRecord" } }, - { - "name": "version", - "in": "path", - "description": "mlModel service version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "mlModel service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MlModelService" - } - } + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "404": { - "description": "MlModel service for instance {id} and version {version} is not found" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } - } - }, - "/v1/services/pipelineServices": { - "get": { - "tags": ["Pipeline Services"], - "summary": "List pipeline services", - "description": "Get a list of pipeline services. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listPipelineService", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner" - } + }, + "AppRunRecord" : { + "type" : "object", + "properties" : { + "appId" : { + "type" : "string", + "format" : "uuid" }, - { - "name": "limit", - "in": "query", - "description": "Limit number services returned. (1 to 1000000, default 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } + "endTime" : { + "type" : "integer", + "format" : "int64" }, - { - "name": "before", - "in": "query", - "description": "Returns list of services before this cursor", - "schema": { - "type": "string" - } + "executionTime" : { + "type" : "integer", + "format" : "int64" }, - { - "name": "after", - "in": "query", - "description": "Returns list of services after this cursor", - "schema": { - "type": "string" - } + "failureContext" : { + "$ref" : "#/components/schemas/FailureContext" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "List of pipeline services", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineServiceList" - } - } - } + "runType" : { + "type" : "string", + "enum" : [ "Scheduled", "OnDemand" ] + }, + "scheduleInfo" : { + "$ref" : "#/components/schemas/AppSchedule" + }, + "startTime" : { + "type" : "integer", + "format" : "int64" + }, + "status" : { + "type" : "string", + "enum" : [ "started", "running", "completed", "failed", "active", "activeError", "stopped", "success" ] + }, + "successContext" : { + "$ref" : "#/components/schemas/SuccessContext" + }, + "timestamp" : { + "type" : "integer", + "format" : "int64" } } }, - "put": { - "tags": ["Pipeline Services"], - "summary": "Update pipeline service", - "description": "Create a new pipeline service or update an existing pipeline service identified by `id`.", - "operationId": "createOrUpdatePipelineService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePipelineService" - } - } + "AppSchedule" : { + "required" : [ "scheduleType" ], + "type" : "object", + "properties" : { + "cronExpression" : { + "type" : "string" + }, + "scheduleType" : { + "type" : "string", + "enum" : [ "Hourly", " Daily", "Weekly", "Monthly", "Custom" ] } - }, - "responses": { - "200": { - "description": "Pipeline service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineService" - } - } - } + } + }, + "AuthenticationMechanism" : { + "type" : "object", + "properties" : { + "authType" : { + "type" : "string", + "enum" : [ "JWT", "SSO", "BASIC" ] }, - "400": { - "description": "Bad request" + "config" : { + "type" : "object" } } }, - "post": { - "tags": ["Pipeline Services"], - "summary": "Create a pipeline service", - "description": "Create a new pipeline service.", - "operationId": "createPipelineService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePipelineService" - } + "Bot" : { + "required" : [ "botUser", "id", "name" ], + "type" : "object", + "properties" : { + "botUser" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - }, - "responses": { - "200": { - "description": "Pipeline service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineService" - } - } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/services/pipelineServices/name/{fqn}": { - "get": { - "tags": ["Pipeline Services"], - "summary": "Get pipeline service by fully qualified name", - "description": "Get a pipeline service by the service `fullyQualifiedName`.", - "operationId": "getPipelineServiceByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the pipeline service", - "required": true, - "schema": { - "type": "string" + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner" + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 64, + "minLength" : 1, + "pattern" : "^(?U)[\\w\\-.]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - ], - "responses": { - "200": { - "description": "Pipeline service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineService" - } - } + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "404": { - "description": "Pipeline service for instance {fqn} is not found" + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "delete": { - "tags": ["Pipeline Services"], - "summary": "Delete a pipeline service by fully qualified name", - "description": "Delete a pipeline services by `fullyQualifiedName`. If pipelines (and tasks) belong to the service, it can't be deleted.", - "operationId": "deletePipelineServiceByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false + "BotList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Bot" } }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the pipeline service", - "required": true, - "schema": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "Pipeline service for instance {fqn} is not found" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } - } - }, - "/v1/services/pipelineServices/restore": { - "put": { - "tags": ["Pipeline Services"], - "summary": "Restore a soft deleted pipeline service.", - "description": "Restore a soft deleted pipeline service.", - "operationId": "restore_21", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully restored the PipelineService ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineService" - } - } - } + }, + "BytesReference" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" } } - } - }, - "/v1/services/pipelineServices/{id}": { - "get": { - "tags": ["Pipeline Services"], - "summary": "Get a pipeline service by Id", - "description": "Get a pipeline service by `Id`.", - "operationId": "getPipelineServiceByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "ChangeDescription" : { + "type" : "object", + "properties" : { + "fieldsAdded" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FieldChange" } }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner" + "fieldsDeleted" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FieldChange" } }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "Pipeline service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineService" - } - } + "fieldsUpdated" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FieldChange" } }, - "404": { - "description": "Pipeline service for instance {id} is not found" + "previousVersion" : { + "type" : "number", + "format" : "double" } } }, - "delete": { - "tags": ["Pipeline Services"], - "summary": "Delete a pipeline service by Id", - "description": "Delete a pipeline services. If pipelines (and tasks) belong to the service, it can't be deleted.", - "operationId": "deletePipelineService", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } + "ChangeEvent" : { + "required" : [ "entityId", "entityType", "eventType", "timestamp" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } + "currentVersion" : { + "type" : "number", + "format" : "double" }, - { - "name": "id", - "in": "path", - "description": "Id of the pipeline service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" + "entity" : { + "type" : "object" }, - "404": { - "description": "Pipeline service for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Pipeline Services"], - "summary": "Update a pipeline service", - "description": "Update an existing pipeline service using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchPipelineService", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } - } - } - } - }, - "/v1/services/pipelineServices/{id}/testConnectionResult": { - "put": { - "tags": ["Pipeline Services"], - "summary": "Add test connection result", - "description": "Add test connection result to the service.", - "operationId": "addTestConnectionResult_5", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestConnectionResult" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully updated the service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" - } - } - } - } - } - } - }, - "/v1/services/pipelineServices/{id}/versions": { - "get": { - "tags": ["Pipeline Services"], - "summary": "List pipeline service versions", - "description": "Get a list of all the versions of a pipeline service identified by `Id`", - "operationId": "listAllPipelineServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "List of pipeline service versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } - } + "entityFullyQualifiedName" : { + "type" : "string" + }, + "entityId" : { + "type" : "string", + "format" : "uuid" + }, + "entityType" : { + "type" : "string" + }, + "eventType" : { + "type" : "string", + "enum" : [ "entityCreated", "entityUpdated", "entityNoChange", "entitySoftDeleted", "entityDeleted", "entityRestored" ] + }, + "previousVersion" : { + "type" : "number", + "format" : "double" + }, + "timestamp" : { + "type" : "integer", + "format" : "int64" + }, + "userName" : { + "type" : "string" } } - } - }, - "/v1/services/pipelineServices/{id}/versions/{version}": { - "get": { - "tags": ["Pipeline Services"], - "summary": "Get a version of the pipeline service", - "description": "Get a version of the pipeline service by given `Id`", - "operationId": "getSpecificPipelineService", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the pipeline service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, + "ChangePasswordRequest" : { + "required" : [ "confirmPassword", "newPassword" ], + "type" : "object", + "properties" : { + "confirmPassword" : { + "type" : "string" }, - { - "name": "version", - "in": "path", - "description": "pipeline service version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "pipeline service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PipelineService" - } - } - } + "newPassword" : { + "type" : "string" + }, + "oldPassword" : { + "type" : "string" }, - "404": { - "description": "Pipeline service for instance {id} and version {version} is not found" + "requestType" : { + "type" : "string", + "enum" : [ "SELF", "USER" ] + }, + "username" : { + "type" : "string" } } - } - }, - "/v1/services/storageServices": { - "get": { - "tags": ["Object Store Services"], - "summary": "List storage services", - "description": "Get a list of storage services.", - "operationId": "listStorageServices", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" + }, + "Chart" : { + "required" : [ "id", "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "chartType" : { + "type" : "string", + "enum" : [ "Line", "Table", "Bar", "Area", "Pie", "Histogram", "Scatter", "Text", "BoxPlot", "Other" ] + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "limit", - "in": "query", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "before", - "in": "query", - "description": "Returns list of storage services before this cursor", - "schema": { - "type": "string" + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "after", - "in": "query", - "description": "Returns list of storage services after this cursor", - "schema": { - "type": "string" + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - ], - "responses": { - "200": { - "description": "List of storage service instances", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageServiceList" - } - } + }, + "service" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "Superset", "Looker", "Tableau", "Redash", "Metabase", "PowerBI", "Mode", "CustomDashboard", "DomoDashboard", "QuickSight", "QlikSense", "Lightdash" ] + }, + "sourceUrl" : { + "type" : "string" + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "usageSummary" : { + "$ref" : "#/components/schemas/UsageDetails" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "put": { - "tags": ["Object Store Services"], - "summary": "Update storage service", - "description": "Update an existing or create a new storage service.", - "operationId": "createOrUpdateStorageService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateStorageService" - } + "ChartList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Chart" } - } - }, - "responses": { - "200": { - "description": "Object store service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageService" - } - } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "400": { - "description": "Bad request" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "post": { - "tags": ["Object Store Services"], - "summary": "Create storage service", - "description": "Create a new storage service.", - "operationId": "createStorageService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateStorageService" - } - } - } - }, - "responses": { - "200": { - "description": "Object store service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageService" - } - } - } + "Classification" : { + "required" : [ "description", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/services/storageServices/name/{fqn}": { - "delete": { - "tags": ["Object Store Services"], - "summary": "Delete an StorageService by fully qualified name", - "description": "Delete an StorageService by `fullyQualifiedName`.", - "operationId": "deleteStorageServiceByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "fqn", - "in": "path", - "description": "Name of the StorageService", - "required": true, - "schema": { - "type": "string" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - ], - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "StorageService for instance {fqn} is not found" - } - } - } - }, - "/v1/services/storageServices/name/{name}": { - "get": { - "tags": ["Object Store Services"], - "summary": "Get storage service by name", - "description": "Get a storage service by the service `name`.", - "operationId": "getStorageServiceByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "disabled" : { + "type" : "boolean" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "mutuallyExclusive" : { + "type" : "boolean" + }, + "name" : { + "maxLength" : 64, + "minLength" : 2, + "pattern" : "^(?U)[\\w'\\- .&()]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - ], - "responses": { - "200": { - "description": "Object store service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageService" - } - } + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "404": { - "description": "Object store service for instance {id} is not found" + "termCount" : { + "type" : "integer", + "format" : "int32" + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "usageCount" : { + "type" : "integer", + "format" : "int32" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } - } - }, - "/v1/services/storageServices/restore": { - "put": { - "tags": ["Object Store Services"], - "summary": "Restore a soft deleted StorageService.", - "description": "Restore a soft deleted StorageService.", - "operationId": "restore_22", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } + }, + "ClassificationList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Classification" } - } - }, - "responses": { - "200": { - "description": "Successfully restored the StorageService.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageService" - } - } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } + }, + "paging" : { + "$ref" : "#/components/schemas/Paging" } } - } - }, - "/v1/services/storageServices/{id}": { - "get": { - "tags": ["Object Store Services"], - "summary": "Get an storage service", - "description": "Get an storage service by `id`.", - "operationId": "getStorageServiceByID", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, + "CloseTask" : { + "required" : [ "comment" ], + "type" : "object", + "properties" : { + "comment" : { + "type" : "string" + } + } + }, + "Clusters" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "pipelines,owner,tags" - } + "skipped" : { + "type" : "integer", + "format" : "int32" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "Object store service instance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageService" - } - } - } + "successful" : { + "type" : "integer", + "format" : "int32" }, - "404": { - "description": "Object store service for instance {id} is not found" + "total" : { + "type" : "integer", + "format" : "int32" } } }, - "delete": { - "tags": ["Object Store Services"], - "summary": "Delete an storage service", - "description": "Delete an storage services. If containers belong the service, it can't be deleted.", - "operationId": "deleteStorageService", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } + "CollectorResult" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } + "name" : { + "type" : "string" }, - { - "name": "id", - "in": "path", - "description": "Id of the storage service", - "required": true, - "schema": { - "type": "string" + "profiledChildren" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/CollectorResult" } - } - ], - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "StorageService service for instance {id} is not found" + "reason" : { + "type" : "string" + }, + "time" : { + "type" : "integer", + "format" : "int64" } } }, - "patch": { - "tags": ["Object Store Services"], - "summary": "Update an storage service", - "description": "Update an existing storage service using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchStorageService", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + "Column" : { + "required" : [ "dataType", "name" ], + "type" : "object", + "properties" : { + "arrayDataType" : { + "type" : "string", + "enum" : [ "NUMBER", "TINYINT", "SMALLINT", "INT", "BIGINT", "BYTEINT", "BYTES", "FLOAT", "DOUBLE", "DECIMAL", "NUMERIC", "TIMESTAMP", "TIMESTAMPZ", "TIME", "DATE", "DATETIME", "INTERVAL", "STRING", "MEDIUMTEXT", "TEXT", "CHAR", "LONG", "VARCHAR", "BOOLEAN", "BINARY", "VARBINARY", "ARRAY", "BLOB", "LONGBLOB", "MEDIUMBLOB", "MAP", "STRUCT", "UNION", "SET", "GEOGRAPHY", "ENUM", "JSON", "UUID", "VARIANT", "GEOMETRY", "BYTEA", "AGGREGATEFUNCTION", "ERROR", "FIXED", "RECORD", "NULL", "SUPER", "HLLSKETCH", "PG_LSN", "PG_SNAPSHOT", "TSQUERY", "TXID_SNAPSHOT", "XML", "MACADDR", "TSVECTOR", "UNKNOWN", "CIDR", "INET", "CLOB", "ROWID", "LOWCARDINALITY", "YEAR", "POINT", "POLYGON", "TUPLE", "SPATIAL", "TABLE", "NTEXT", "IMAGE", "IPV4", "IPV6", "DATETIMERANGE" ] + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Column" } - } - } - } - }, - "/v1/services/storageServices/{id}/testConnectionResult": { - "put": { - "tags": ["Object Store Services"], - "summary": "Add test connection result", - "description": "Add test connection result to the service.", - "operationId": "addTestConnectionResult_6", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the service", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "constraint" : { + "type" : "string", + "enum" : [ "NULL", "NOT_NULL", "UNIQUE", "PRIMARY_KEY" ] + }, + "customMetrics" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/CustomMetric" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TestConnectionResult" - } + }, + "dataLength" : { + "type" : "integer", + "format" : "int32" + }, + "dataType" : { + "type" : "string", + "enum" : [ "NUMBER", "TINYINT", "SMALLINT", "INT", "BIGINT", "BYTEINT", "BYTES", "FLOAT", "DOUBLE", "DECIMAL", "NUMERIC", "TIMESTAMP", "TIMESTAMPZ", "TIME", "DATE", "DATETIME", "INTERVAL", "STRING", "MEDIUMTEXT", "TEXT", "CHAR", "LONG", "VARCHAR", "BOOLEAN", "BINARY", "VARBINARY", "ARRAY", "BLOB", "LONGBLOB", "MEDIUMBLOB", "MAP", "STRUCT", "UNION", "SET", "GEOGRAPHY", "ENUM", "JSON", "UUID", "VARIANT", "GEOMETRY", "BYTEA", "AGGREGATEFUNCTION", "ERROR", "FIXED", "RECORD", "NULL", "SUPER", "HLLSKETCH", "PG_LSN", "PG_SNAPSHOT", "TSQUERY", "TXID_SNAPSHOT", "XML", "MACADDR", "TSVECTOR", "UNKNOWN", "CIDR", "INET", "CLOB", "ROWID", "LOWCARDINALITY", "YEAR", "POINT", "POLYGON", "TUPLE", "SPATIAL", "TABLE", "NTEXT", "IMAGE", "IPV4", "IPV6", "DATETIMERANGE" ] + }, + "dataTypeDisplay" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "jsonSchema" : { + "type" : "string" + }, + "name" : { + "maxLength" : 256, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" + }, + "ordinalPosition" : { + "type" : "integer", + "format" : "int32" + }, + "precision" : { + "type" : "integer", + "format" : "int32" + }, + "profile" : { + "$ref" : "#/components/schemas/ColumnProfile" + }, + "scale" : { + "type" : "integer", + "format" : "int32" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } - }, - "responses": { - "200": { - "description": "Successfully updated the service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseService" - } - } + } + }, + "ColumnJoin" : { + "type" : "object", + "properties" : { + "columnName" : { + "maxLength" : 256, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" + }, + "joinedWith" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/JoinedWith" } } } - } - }, - "/v1/services/storageServices/{id}/versions": { - "get": { - "tags": ["Object Store Services"], - "summary": "List storage service versions", - "description": "Get a list of all the versions of an storage service identified by `id`", - "operationId": "listAllStorageServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "storage service Id", - "required": true, - "schema": { - "type": "string" + }, + "ColumnLineage" : { + "type" : "object", + "properties" : { + "fromColumns" : { + "type" : "array", + "items" : { + "type" : "string" } + }, + "function" : { + "type" : "string" + }, + "toColumn" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" } - ], - "responses": { - "200": { - "description": "List of storage service versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } + } + }, + "ColumnProfile" : { + "required" : [ "name", "timestamp" ], + "type" : "object", + "properties" : { + "customMetricsProfile" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/CustomMetricProfile" } + }, + "distinctCount" : { + "type" : "number", + "format" : "double" + }, + "distinctProportion" : { + "type" : "number", + "format" : "double" + }, + "duplicateCount" : { + "type" : "number", + "format" : "double" + }, + "firstQuartile" : { + "type" : "number", + "format" : "double" + }, + "histogram" : { + "$ref" : "#/components/schemas/Histogram" + }, + "interQuartileRange" : { + "type" : "number", + "format" : "double" + }, + "max" : { + "type" : "object" + }, + "maxLength" : { + "type" : "number", + "format" : "double" + }, + "mean" : { + "type" : "number", + "format" : "double" + }, + "median" : { + "type" : "number", + "format" : "double" + }, + "min" : { + "type" : "object" + }, + "minLength" : { + "type" : "number", + "format" : "double" + }, + "missingCount" : { + "type" : "number", + "format" : "double" + }, + "missingPercentage" : { + "type" : "number", + "format" : "double" + }, + "name" : { + "type" : "string" + }, + "nonParametricSkew" : { + "type" : "number", + "format" : "double" + }, + "nullCount" : { + "type" : "number", + "format" : "double" + }, + "nullProportion" : { + "type" : "number", + "format" : "double" + }, + "stddev" : { + "type" : "number", + "format" : "double" + }, + "sum" : { + "type" : "number", + "format" : "double" + }, + "thirdQuartile" : { + "type" : "number", + "format" : "double" + }, + "timestamp" : { + "type" : "integer", + "format" : "int64" + }, + "uniqueCount" : { + "type" : "number", + "format" : "double" + }, + "uniqueProportion" : { + "type" : "number", + "format" : "double" + }, + "validCount" : { + "type" : "number", + "format" : "double" + }, + "valuesCount" : { + "type" : "number", + "format" : "double" + }, + "valuesPercentage" : { + "type" : "number", + "format" : "double" + }, + "variance" : { + "type" : "number", + "format" : "double" } } - } - }, - "/v1/services/storageServices/{id}/versions/{version}": { - "get": { - "tags": ["Object Store Services"], - "summary": "Get a version of the storage service", - "description": "Get a version of the storage service by given `id`", - "operationId": "getSpecificStorageServiceVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "storage service Id", - "required": true, - "schema": { - "type": "string" + }, + "ColumnProfileList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ColumnProfile" } }, - { - "name": "version", - "in": "path", - "description": "storage service version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "storage service", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageService" - } - } + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "404": { - "description": "Object store service for instance {id} and version {version} is not found" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } - } - }, - "/v1/system/version": { - "get": { - "tags": ["System"], - "summary": "Get version of metadata service", - "description": "Get the build version of OpenMetadata service and build timestamp.", - "operationId": "getCatalogVersion", - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenMetadataServerVersion" - } - } + }, + "ColumnProfilerConfig" : { + "type" : "object", + "properties" : { + "columnName" : { + "type" : "string" + }, + "metrics" : { + "type" : "array", + "items" : { + "type" : "string" } } } - } - }, - "/v1/tables": { - "get": { - "tags": ["Tables"], - "summary": "List tables", - "description": "Get a list of tables, optionally filtered by `database` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listTables", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "tableConstraints,tablePartition,usageSummary,owner,customMetrics,tags,followers,joins,viewDefinition,dataModel,extension,testSuite" - } + }, + "ComponentConfig" : { + "type" : "object" + }, + "Container" : { + "required" : [ "id", "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - { - "name": "database", - "in": "query", - "description": "Filter tables by database fully qualified name", - "schema": { - "type": "string", - "example": "snowflakeWestCoast.financeDB" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "databaseSchema", - "in": "query", - "description": "Filter tables by databaseSchema fully qualified name", - "schema": { - "type": "string", - "example": "snowflakeWestCoast.financeDB.schema" - } + "dataModel" : { + "$ref" : "#/components/schemas/ContainerDataModel" }, - { - "name": "includeEmptyTestSuite", - "in": "query", - "description": "Include tables with an empty test suite (i.e. no test cases have been created for this table). Default to true", - "schema": { - "type": "boolean", - "example": true, - "default": true + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "limit", - "in": "query", - "description": "Limit the number tables returned. (1 to 1000000, default = 10) ", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "before", - "in": "query", - "description": "Returns list of tables before this cursor", - "schema": { - "type": "string" + "extension" : { + "type" : "object" + }, + "fileFormats" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "zip", "gz", "zstd", "csv", "tsv", "json", "parquet", "avro" ] } }, - { - "name": "after", - "in": "query", - "description": "Returns list of tables after this cursor", - "schema": { - "type": "string" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" + }, + "numberOfObjects" : { + "type" : "number", + "format" : "double" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "parent" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "prefix" : { + "type" : "string" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - ], - "responses": { - "200": { - "description": "List of tables", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableList" - } - } + }, + "service" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "S3", "ADLS", "CustomStorage" ] + }, + "size" : { + "type" : "number", + "format" : "double" + }, + "sourceUrl" : { + "type" : "string" + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "put": { - "tags": ["Tables"], - "summary": "Create or update a table", - "description": "Create a table, if it does not exist. If a table already exists, update the table.", - "operationId": "createOrUpdateTable", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTable" - } - } - } - }, - "responses": { - "200": { - "description": "The table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + "ContainerDataModel" : { + "required" : [ "columns" ], + "type" : "object", + "properties" : { + "columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Column" } }, - "400": { - "description": "Bad request" + "isPartitioned" : { + "type" : "boolean" } } }, - "post": { - "tags": ["Tables"], - "summary": "Create a table", - "description": "Create a new table under an existing `database`.", - "operationId": "createTable", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTable" - } + "ContainerList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Container" } - } - }, - "responses": { - "200": { - "description": "table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "400": { - "description": "Bad request" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } - } - }, - "/v1/tables/name/{fqn}": { - "get": { - "tags": ["Tables"], - "summary": "Get a table by fully qualified name", - "description": "Get a table by fully qualified table name.", - "operationId": "getTableByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the table", - "required": true, - "schema": { - "type": "string" - } + }, + "CreateApp" : { + "type" : "object", + "properties" : { + "appConfiguration" : { + "type" : "object" }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "tableConstraints,tablePartition,usageSummary,owner,customMetrics,tags,followers,joins,viewDefinition,dataModel,extension,testSuite" - } + "appSchedule" : { + "$ref" : "#/components/schemas/AppSchedule" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + "bot" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "404": { - "description": "Table for instance {fqn} is not found" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } }, - "delete": { - "tags": ["Tables"], - "summary": "Delete a table by fully qualified name", - "description": "Delete a table by `fullyQualifiedName`.", - "operationId": "deleteTable_1", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } + "CreateAppMarketPlaceDefinitionReq" : { + "required" : [ "appType", "className", "name", "permission", "scheduleType" ], + "type" : "object", + "properties" : { + "appConfiguration" : { + "type" : "object" + }, + "appLogoUrl" : { + "type" : "string", + "format" : "uri" }, - { - "name": "fqn", - "in": "path", - "description": "Name of the table", - "required": true, - "schema": { - "type": "string" + "appScreenshots" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "OK" }, - "404": { - "description": "Table for instance {fqn} is not found" - } - } - } - }, - "/v1/tables/restore": { - "put": { - "tags": ["Tables"], - "summary": "Restore a soft deleted table", - "description": "Restore a soft deleted table.", - "operationId": "restore_5", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } + "appType" : { + "type" : "string", + "enum" : [ "internal", "external" ] + }, + "className" : { + "type" : "string" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - }, - "responses": { - "200": { - "description": "Successfully restored the Table ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + }, + "description" : { + "type" : "string" + }, + "developer" : { + "type" : "string" + }, + "developerUrl" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "features" : { + "type" : "string" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "permission" : { + "type" : "string", + "enum" : [ "All" ] + }, + "privacyPolicyUrl" : { + "type" : "string" + }, + "runtime" : { + "type" : "object" + }, + "scheduleType" : { + "type" : "string", + "enum" : [ "Live", "Scheduled" ] + }, + "supportEmail" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } - } - }, - "/v1/tables/{fqn}/columnProfile": { - "get": { - "tags": ["Tables"], - "summary": "List of column profiles", - "description": "Get a list of all the column profiles for the given table fqn, optionally filtered by `extension`, `startTs` and `endTs` of the profile. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", - "operationId": "list column Profiles", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "FQN of the column", - "required": true, - "schema": { - "type": "string" - } + }, + "CreateBot" : { + "required" : [ "botUser", "name" ], + "type" : "object", + "properties" : { + "botUser" : { + "type" : "string" }, - { - "name": "startTs", - "in": "query", - "description": "Filter table/column profiles after the given start timestamp", - "required": true, - "schema": { - "type": "number" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - { - "name": "endTs", - "in": "query", - "description": "Filter table/column profiles before the given end timestamp", - "required": true, - "schema": { - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "List of table profiles", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ColumnProfileList" - } - } + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 64, + "minLength" : 1, + "pattern" : "^(?U)[\\w\\-.]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } - } - }, - "/v1/tables/{fqn}/systemProfile": { - "get": { - "tags": ["Tables"], - "summary": "List of system profiles", - "description": "Get a list of all the system profiles for the given table fqn, filtered by `extension`, `startTs` and `endTs` of the profile. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", - "operationId": "list system Profiles", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "FQN of the table", - "required": true, - "schema": { - "type": "string" - } + }, + "CreateChart" : { + "required" : [ "name", "service" ], + "type" : "object", + "properties" : { + "chartType" : { + "type" : "string", + "enum" : [ "Line", "Table", "Bar", "Area", "Pie", "Histogram", "Scatter", "Text", "BoxPlot", "Other" ] }, - { - "name": "startTs", - "in": "query", - "description": "Filter system profiles after the given start timestamp", - "required": true, - "schema": { - "type": "number" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - { - "name": "endTs", - "in": "query", - "description": "Filter system profiles before the given end timestamp", - "required": true, - "schema": { - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "List of system profiles", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SystemProfileList" - } - } - } - } - } - } - }, - "/v1/tables/{fqn}/tableProfile": { - "get": { - "tags": ["Tables"], - "summary": "List of table profiles", - "description": "Get a list of all the table profiles for the given table fqn, optionally filtered by `extension`, `startTs` and `endTs` of the profile. Use cursor-based pagination to limit the number of entries in the list using `limit` and `before` or `after` query params.", - "operationId": "list Profiles", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "FQN of the table or column", - "required": true, - "schema": { - "type": "string" - } + "description" : { + "type" : "string" }, - { - "name": "startTs", - "in": "query", - "description": "Filter table/column profiles after the given start timestamp", - "schema": { - "type": "number" - } + "displayName" : { + "type" : "string" }, - { - "name": "endTs", - "in": "query", - "description": "Filter table/column profiles before the given end timestamp", - "schema": { - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "List of table profiles", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableProfileList" - } - } - } - } - } - } - }, - "/v1/tables/{fqn}/tableProfile/latest": { - "get": { - "tags": ["Tables"], - "summary": "Get the latest table profile", - "description": "Get the latest table and column profile ", - "operationId": "Get the latest table and column profile", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "FQN of the table or column", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Table with profile and column profile", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } - } - } - } - } - }, - "/v1/tables/{fqn}/{entityType}/{timestamp}/profile": { - "delete": { - "tags": ["Tables"], - "summary": "Delete table profile data", - "description": "Delete table profile data to the table.", - "operationId": "deleteDataProfiler", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "FQN of the table or column", - "required": true, - "schema": { - "type": "string" - } + "domain" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - { - "name": "entityType", - "in": "path", - "description": "type of the entity table or column", - "required": true, - "schema": { - "type": "string" - } + "extension" : { + "type" : "object" }, - { - "name": "timestamp", - "in": "path", - "description": "Timestamp of the table profile", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "200": { - "description": "Successfully deleted the Table Profile", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableProfile" - } - } - } - } - } - } - }, - "/v1/tables/{id}": { - "get": { - "tags": ["Tables"], - "summary": "Get a table by Id", - "description": "Get a table by `Id`", - "operationId": "getTableByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "table Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "tableConstraints,tablePartition,usageSummary,owner,customMetrics,tags,followers,joins,viewDefinition,dataModel,extension,testSuite" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } - } - }, - "404": { - "description": "Table for instance {id} is not found" - } - } - }, - "delete": { - "tags": ["Tables"], - "summary": "Delete a table by Id", - "description": "Delete a table by `Id`.", - "operationId": "deleteTable", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "404": { - "description": "Table for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Tables"], - "summary": "Update a table", - "description": "Update an existing table using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchTable", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } - } - } - } - }, - "/v1/tables/{id}/customMetric": { - "put": { - "tags": ["Tables"], - "summary": "Add column custom metrics", - "description": "Add column custom metrics.", - "operationId": "addCustomMetric", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateCustomMetric" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } - } - } - } - } - }, - "/v1/tables/{id}/customMetric/{columnName}/{customMetricName}": { - "delete": { - "tags": ["Tables"], - "summary": "Delete custom metric from a column", - "description": "Delete a custom metric from a column.", - "operationId": "deleteCustomMetric", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - { - "name": "columnName", - "in": "path", - "description": "column of the table", - "required": true, - "schema": { - "type": "string" - } + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - { - "name": "customMetricName", - "in": "path", - "description": "column Test Type", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } - } - } - } - } - }, - "/v1/tables/{id}/dataModel": { - "put": { - "tags": ["Tables"], - "summary": "Add data modeling information to a table", - "description": "Add data modeling (such as DBT model) information on how the table was created to the table.", - "operationId": "addDataModel", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DataModel" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + "sourceUrl" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } - } - }, - "/v1/tables/{id}/followers": { - "put": { - "tags": ["Tables"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as followed of this table", - "operationId": "addFollowerToTable", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" - } - } + }, + "CreateClassification" : { + "required" : [ "description", "name" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "404": { - "description": "Table for instance {id} is not found" - } - } - } - }, - "/v1/tables/{id}/followers/{userId}": { - "delete": { - "tags": ["Tables"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the table.", - "operationId": "deleteFollower", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + "description" : { + "type" : "string" }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" - } - } - } - } - } - } - }, - "/v1/tables/{id}/joins": { - "put": { - "tags": ["Tables"], - "summary": "Add table join information", - "description": "Add information about other tables that this table is joined with. Join information can only be added for the last 30 days starting today.", - "operationId": "addTableJoinInfo", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableJoins" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully updated the Table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } - } + "displayName" : { + "type" : "string" }, - "404": { - "description": "Table for instance {id} is not found" + "domain" : { + "type" : "string" }, - "400": { - "description": "Date range can only include past 30 days starting today" - } - } - } - }, - "/v1/tables/{id}/sampleData": { - "get": { - "tags": ["Tables"], - "summary": "Get sample data", - "description": "Get sample data from the table.", - "operationId": "getSampleData", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Successfully update the Table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "mutuallyExclusive" : { + "type" : "boolean" + }, + "name" : { + "maxLength" : 64, + "minLength" : 2, + "pattern" : "^(?U)[\\w'\\- .&()]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } }, - "put": { - "tags": ["Tables"], - "summary": "Add sample data", - "description": "Add sample data to the table.", - "operationId": "addSampleData", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "CreateContainer" : { + "required" : [ "name", "service" ], + "type" : "object", + "properties" : { + "dataModel" : { + "$ref" : "#/components/schemas/ContainerDataModel" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableData" - } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "fileFormats" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "zip", "gz", "zstd", "csv", "tsv", "json", "parquet", "avro" ] } - } - }, - "responses": { - "200": { - "description": "Successfully update the Table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" + }, + "numberOfObjects" : { + "type" : "number", + "format" : "double" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "parent" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "prefix" : { + "type" : "string" + }, + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "size" : { + "type" : "number", + "format" : "double" + }, + "sourceUrl" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } }, - "delete": { - "tags": ["Tables"], - "summary": "Delete sample data", - "description": "Delete sample data from the table.", - "operationId": "deleteSampleData", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Successfully update the Table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } - } + "CreateCustomMetric" : { + "required" : [ "columnName", "expression", "name" ], + "type" : "object", + "properties" : { + "columnName" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "expression" : { + "type" : "string" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" } } - } - }, - "/v1/tables/{id}/tableProfile": { - "put": { - "tags": ["Tables"], - "summary": "Add table profile data", - "description": "Add table profile data to the table.", - "operationId": "addDataProfiler", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTableProfile" - } + }, + "CreateDashboard" : { + "required" : [ "name", "service" ], + "type" : "object", + "properties" : { + "charts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - }, - "responses": { - "200": { - "description": "Successfully updated the Table ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + }, + "dashboardType" : { + "type" : "string", + "enum" : [ "Dashboard", "Report" ] + }, + "dataModels" : { + "type" : "array", + "items" : { + "type" : "string" } - } - } - } - }, - "/v1/tables/{id}/tableProfilerConfig": { - "get": { - "tags": ["Tables"], - "summary": "Get table profile config", - "description": "Get table profile config to the table.", - "operationId": "getDataProfilerConfig", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "Successfully updated the Table ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "project" : { + "type" : "string" + }, + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "sourceUrl" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } }, - "put": { - "tags": ["Tables"], - "summary": "Add table profile config", - "description": "Add table profile config to the table.", - "operationId": "addDataProfilerConfig", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "CreateDashboardDataModel" : { + "required" : [ "columns", "dataModelType", "name", "service" ], + "type" : "object", + "properties" : { + "columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Column" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TableProfilerConfig" - } + }, + "dataModelType" : { + "type" : "string", + "enum" : [ "TableauDataModel", "SupersetDataModel", "MetabaseDataModel", "LookMlView", "LookMlExplore", "PowerBIDataModel", "QlikSenseDataModel" ] + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - }, - "responses": { - "200": { - "description": "Successfully updated the Table ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "project" : { + "type" : "string" + }, + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "Superset", "Looker", "Tableau", "Redash", "Metabase", "PowerBI", "Mode", "CustomDashboard", "DomoDashboard", "QuickSight", "QlikSense", "Lightdash" ] + }, + "sql" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } }, - "delete": { - "tags": ["Tables"], - "summary": "Delete table profiler config", - "description": "delete table profile config to the table.", - "operationId": "delete DataProfilerConfig", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the table", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Successfully deleted the Table profiler config", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } - } - } - } - } - }, - "/v1/tables/{id}/versions": { - "get": { - "tags": ["Tables"], - "summary": "List table versions", - "description": "Get a list of all the versions of a table identified by `Id`", - "operationId": "listAllTableVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Table Id", - "required": true, - "schema": { - "type": "string" + "CreateDashboardService" : { + "required" : [ "name", "serviceType" ], + "type" : "object", + "properties" : { + "connection" : { + "$ref" : "#/components/schemas/DashboardConnection" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "List of table versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "Superset", "Looker", "Tableau", "Redash", "Metabase", "PowerBI", "Mode", "CustomDashboard", "DomoDashboard", "QuickSight", "QlikSense", "Lightdash" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } - } - }, - "/v1/tables/{id}/versions/{version}": { - "get": { - "tags": ["Tables"], - "summary": "Get a version of the table", - "description": "Get a version of the table by given `Id`", - "operationId": "getSpecificDatabaseVersion_1", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Table Id", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "CreateDataProduct" : { + "required" : [ "description", "name" ], + "type" : "object", + "properties" : { + "assets" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - { - "name": "version", - "in": "path", - "description": "Table version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "table", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Table" - } - } + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "404": { - "description": "Table for instance {id} and version {version} is not found" - } - } - } - }, - "/v1/tags": { - "get": { - "tags": ["Classifications"], - "summary": "List tags", - "description": "Get a list of tags. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listTags", - "parameters": [ - { - "name": "parent", - "in": "query", - "description": "List tags filtered by children of tag identified by fqn given in `parent` parameter. The fqn can either be classificationName or fqn of a parent tag", - "schema": { - "type": "string", - "example": "children, usageCount" - } + "description" : { + "type" : "string" }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "children, usageCount" - } + "displayName" : { + "type" : "string" }, - { - "name": "disabled", - "in": "query", - "description": "Filter Disabled Classifications", - "schema": { - "type": "string", - "example": "children, usageCount", - "default": "false" - } + "domain" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - { - "name": "limit", - "in": "query", - "description": "Limit the number tags returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 + "experts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - { - "name": "before", - "in": "query", - "description": "Returns list of tags before this cursor", - "schema": { - "type": "string" - } + "extension" : { + "type" : "object" }, - { - "name": "after", - "in": "query", - "description": "Returns list of tags after this cursor", - "schema": { - "type": "string" - } + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "List of tags", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TagList" - } - } - } - } - } - }, - "put": { - "tags": ["Classifications"], - "summary": "Create or update a tag", - "description": "Create a new tag, if it does not exist or update an existing tag.", - "operationId": "createOrUpdateTag", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTag" - } - } - } - }, - "responses": { - "200": { - "description": "The tag", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - }, - "post": { - "tags": ["Classifications"], - "summary": "Create a tag", - "description": "Create a new tag.", - "operationId": "createTag", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTag" - } - } - } - }, - "responses": { - "200": { - "description": "The tag", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/tags/name/{fqn}": { - "get": { - "tags": ["Classifications"], - "summary": "Get a tag by fully qualified name", - "description": "Get a tag by `fullyQualifiedName`.", - "operationId": "getTagByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the tag", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "children, usageCount" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The tag", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - } - } - } - }, - "404": { - "description": "Tag for instance {fqn} is not found" - } - } - }, - "delete": { - "tags": ["Classifications"], - "summary": "Delete a tag by fully qualified name", - "description": "Delete a tag by `fullyQualifiedName`.", - "operationId": "deleteTagByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the tag", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "tag for instance {fqn} is not found" - } - } - } - }, - "/v1/tags/restore": { - "put": { - "tags": ["Classifications"], - "summary": "Restore a soft deleted tag.", - "description": "Restore a soft deleted tag.", - "operationId": "restoreTag", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully restored the Tag ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - } - } - } - } - } - } - }, - "/v1/tags/{id}": { - "get": { - "tags": ["Classifications"], - "summary": "Get a tag by id", - "description": "Get a tag by `id`.", - "operationId": "getTagByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the tag", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "children, usageCount" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The tag", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - } - } - } - }, - "404": { - "description": "Tag for instance {id} is not found" - } - } - }, - "delete": { - "tags": ["Classifications"], - "summary": "Delete a tag by id", - "description": "Delete a tag by `id`.", - "operationId": "deleteTag", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this entity and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the tag", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "tag for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Classifications"], - "summary": "Update a tag", - "description": "Update an existing tag using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchTag", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the tag", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } - } - } - } - }, - "/v1/tags/{id}/versions": { - "get": { - "tags": ["Classifications"], - "summary": "List tag versions", - "description": "Get a list of all the versions of a tag identified by `id`", - "operationId": "listAllTagVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the tag", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "List of tag versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } - } - } - } - } - }, - "/v1/tags/{id}/versions/{version}": { - "get": { - "tags": ["Classifications"], - "summary": "Get a version of the tags", - "description": "Get a version of the tag by given `id`", - "operationId": "getSpecificTagVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the tag", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "tag version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "tags", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Tag" - } - } - } - }, - "404": { - "description": "Tag for instance {id} and version {version} is not found" - } - } - } - }, - "/v1/teams": { - "get": { - "tags": ["Teams"], - "summary": "List teams", - "description": "Get a list of teams. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listTeams", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,profile,users,owns,defaultRoles,parents,children,policies,userCount,childrenCount" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number of teams returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of teams before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of teams after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "parentTeam", - "in": "query", - "description": "Filter the results by parent team name", - "schema": { - "type": "string" - } - }, - { - "name": "isJoinable", - "in": "query", - "description": "Filter the results by whether the team can be joined by any user or not", - "schema": { - "type": "boolean" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "List of teams", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TeamList" - } - } - } - } - } - }, - "put": { - "tags": ["Teams"], - "summary": "Update team", - "description": "Create or Update a team.", - "operationId": "createOrUpdateTeam", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTeam" - } - } - } - }, - "responses": { - "200": { - "description": "The team ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - }, - "post": { - "tags": ["Teams"], - "summary": "Create a team", - "description": "Create a new team.", - "operationId": "createTeam", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTeam" - } - } - } - }, - "responses": { - "200": { - "description": "The team", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/teams/documentation/csv": { - "get": { - "tags": ["Teams"], - "summary": "Get CSV documentation for team import/export", - "operationId": "getCsvDocumentation_1", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/v1/teams/hierarchy": { - "get": { - "tags": ["Teams"], - "summary": "List teams with hierarchy", - "description": "Get a list of teams with hierarchy.", - "operationId": "listTeamsHierarchy", - "parameters": [ - { - "name": "limit", - "in": "query", - "description": "Limit the number of teams returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 1000, - "type": "integer", - "format": "int32", - "default": 10000 - } - }, - { - "name": "isJoinable", - "in": "query", - "description": "Filter the results by whether the team can be joined by any user or not", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "List of teams with hierarchy", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TeamList" - } - } - } - } - } - } - }, - "/v1/teams/name/{name}": { - "get": { - "tags": ["Teams"], - "summary": "Get a team by name", - "description": "Get a team by `name`.", - "operationId": "getTeamByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the team", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,profile,users,owns,defaultRoles,parents,children,policies,userCount,childrenCount" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The team", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" - } - } - } - }, - "404": { - "description": "Team for instance {name} is not found" - } - } - }, - "delete": { - "tags": ["Teams"], - "summary": "Delete a team by name", - "description": "Delete a team by given `name`.", - "operationId": "deleteTeamByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "name", - "in": "path", - "description": "Name of the team", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Team for instance {name} is not found" - } - } - } - }, - "/v1/teams/name/{name}/export": { - "get": { - "tags": ["Teams"], - "summary": "Export teams in CSV format", - "operationId": "exportTeams", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Exported csv with teams information", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/v1/teams/name/{name}/import": { - "put": { - "tags": ["Teams"], - "summary": "Import from CSV to create, and update teams.", - "operationId": "importTeams", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "dryRun", - "in": "query", - "description": "Dry-run when true is used for validating the CSV without really importing it. (default=true)", - "schema": { - "type": "boolean", - "default": true - } - } - ], - "requestBody": { - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "responses": { - "200": { - "description": "Import result", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CsvImportResult" - } - } - } - } - } - } - }, - "/v1/teams/restore": { - "put": { - "tags": ["Teams"], - "summary": "Restore a soft deleted team", - "description": "Restore a soft deleted team.", - "operationId": "restore_25", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully restored the Team ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" - } - } - } - } - } - } - }, - "/v1/teams/{id}": { - "get": { - "tags": ["Teams"], - "summary": "Get a team by id", - "description": "Get a team by `id`.", - "operationId": "getTeamByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the team", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,profile,users,owns,defaultRoles,parents,children,policies,userCount,childrenCount" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The team", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" - } - } - } - }, - "404": { - "description": "Team for instance {id} is not found" - } - } - }, - "delete": { - "tags": ["Teams"], - "summary": "Delete a team by id", - "description": "Delete a team by given `id`.", - "operationId": "deleteTeam", - "parameters": [ - { - "name": "recursive", - "in": "query", - "description": "Recursively delete this team and it's children. (Default `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the team", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Team for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Teams"], - "summary": "Update a team", - "description": "Update an existing team with JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchTeam", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the team", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } - } - } - } - }, - "/v1/teams/{id}/versions": { - "get": { - "tags": ["Teams"], - "summary": "List team versions", - "description": "Get a list of all the versions of a team identified by `id`", - "operationId": "listAllTeamVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the team", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "List of team versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } - } - } - } - } - }, - "/v1/teams/{id}/versions/{version}": { - "get": { - "tags": ["Teams"], - "summary": "Get a version of the team", - "description": "Get a version of the team by given `id`", - "operationId": "getSpecificRoleVersion_1", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the team", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Team version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "team", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" - } - } - } - }, - "404": { - "description": "Team for instance {id} and version {version} is not found" - } - } - } - }, - "/v1/topics": { - "get": { - "tags": ["Topics"], - "summary": "List topics", - "description": "Get a list of topics, optionally filtered by `service` it belongs to. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listTopics", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,tags,extension" - } - }, - { - "name": "service", - "in": "query", - "description": "Filter topics by service name", - "schema": { - "type": "string", - "example": "kafkaWestCoast" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number topics returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of topics before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of topics after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "List of topics", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TopicList" - } - } - } - } - } - }, - "put": { - "tags": ["Topics"], - "summary": "Update topic", - "description": "Create a topic, it it does not exist or update an existing topic.", - "operationId": "createOrUpdateTopic", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTopic" - } - } - } - }, - "responses": { - "200": { - "description": "The updated topic ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topic" - } - } - } - } - } - }, - "post": { - "tags": ["Topics"], - "summary": "Create a topic", - "description": "Create a topic under an existing `service`.", - "operationId": "createTopic", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTopic" - } - } - } - }, - "responses": { - "200": { - "description": "The topic", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topic" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/topics/name/{fqn}": { - "get": { - "tags": ["Topics"], - "summary": "Get a topic by fully qualified name", - "description": "Get a topic by fully qualified name.", - "operationId": "getTopicByFQN", - "parameters": [ - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the topic", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,tags,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The topic", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topic" - } - } - } - }, - "404": { - "description": "Topic for instance {fqn} is not found" - } - } - }, - "delete": { - "tags": ["Topics"], - "summary": "Delete a topic by fully qualified name", - "description": "Delete a topic by `fullyQualifiedName`.", - "operationId": "deleteTopicByFQN", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the topic", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Topic for instance {fqn} is not found" - } - } - } - }, - "/v1/topics/restore": { - "put": { - "tags": ["Topics"], - "summary": "Restore a soft deleted topic", - "description": "Restore a soft deleted topic.", - "operationId": "restore_27", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully restored the Topic. ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topic" - } - } - } - } - } - } - }, - "/v1/topics/{id}": { - "get": { - "tags": ["Topics"], - "summary": "Get a topic by id", - "description": "Get a topic by `id`.", - "operationId": "get_3", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "owner,followers,tags,extension" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The topic", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topic" - } - } - } - }, - "404": { - "description": "Topic for instance {id} is not found" - } - } - }, - "delete": { - "tags": ["Topics"], - "summary": "Delete a topic by id", - "description": "Delete a topic by `id`.", - "operationId": "deleteTopic", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "Topic for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Topics"], - "summary": "Update a topic", - "description": "Update an existing topic using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchTopic", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" - } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} - } - } - } - } - }, - "/v1/topics/{id}/followers": { - "put": { - "tags": ["Topics"], - "summary": "Add a follower", - "description": "Add a user identified by `userId` as followed of this topic", - "operationId": "addFollower_4", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "Id of the user to be added as follower", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "uuid" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" - } - } - } - }, - "404": { - "description": "Topic for instance {id} is not found" - } - } - } - }, - "/v1/topics/{id}/followers/{userId}": { - "delete": { - "tags": ["Topics"], - "summary": "Remove a follower", - "description": "Remove the user identified `userId` as a follower of the topic.", - "operationId": "deleteFollower_5", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "userId", - "in": "path", - "description": "Id of the user being removed as follower", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeEvent" - } - } - } - } - } - } - }, - "/v1/topics/{id}/sampleData": { - "get": { - "tags": ["Topics"], - "summary": "Get sample data", - "description": "Get sample data from the topic.", - "operationId": "getSampleData_1", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "Successfully obtained the Topic", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topic" - } - } - } - } - } - }, - "put": { - "tags": ["Topics"], - "summary": "Add sample data", - "description": "Add sample data to the topic.", - "operationId": "addSampleData_1", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TopicSampleData" - } - } - } - }, - "responses": { - "200": { - "description": "The topic", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topic" - } - } - } - } - } - } - }, - "/v1/topics/{id}/versions": { - "get": { - "tags": ["Topics"], - "summary": "List topic versions", - "description": "Get a list of all the versions of a topic identified by `id`", - "operationId": "listAllTopicVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "List of topic versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } - } - } - } - } - }, - "/v1/topics/{id}/versions/{version}": { - "get": { - "tags": ["Topics"], - "summary": "Get a version of the topic", - "description": "Get a version of the topic by given `id`", - "operationId": "getSpecificTopicVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the topic", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - }, - { - "name": "version", - "in": "path", - "description": "Topic version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" - } - } - ], - "responses": { - "200": { - "description": "topic", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topic" - } - } - } - }, - "404": { - "description": "Topic for instance {id} and version {version} is not found" - } - } - } - }, - "/v1/usage/{entity}/name/{fqn}": { - "get": { - "tags": ["Usage"], - "summary": "Get usage by fully qualified name", - "description": "Get usage details for an entity identified by fully qualified name.", - "operationId": "getEntityUsageByFQN", - "parameters": [ - { - "name": "entity", - "in": "path", - "description": "Entity type for which usage is requested", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the entity that uniquely identifies an entity", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "days", - "in": "query", - "description": "Usage for number of days going back from the given date (default=1, min=1, max=30)", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "date", - "in": "query", - "description": "Usage for number of days going back from this date in ISO 8601 format (default = currentDate)", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Entity usage", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityUsage" - } - } - } - }, - "404": { - "description": "Entity for instance {fqn} is not found" - } - } - }, - "put": { - "tags": ["Usage"], - "summary": "Report usage by fully qualified name", - "description": "Report usage information for an entity by name on a given date. System stores last 30 days of usage information. Usage information older than 30 days is deleted.", - "operationId": "reportEntityUsageWithFQN_1", - "parameters": [ - { - "name": "entity", - "in": "path", - "description": "Entity type for which usage is reported", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the entity that uniquely identifies an entity", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "Usage information a given date", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DailyCount" - } - } - } - }, - "responses": { - "200": { - "description": "Usage information", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityUsage" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - }, - "post": { - "tags": ["Usage"], - "summary": "Report usage by fully qualified name", - "description": "Report usage information for an entity by name on a given date. System stores last 30 days of usage information. Usage information older than 30 days is deleted.", - "operationId": "reportEntityUsageWithFQN", - "parameters": [ - { - "name": "entity", - "in": "path", - "description": "Entity type for which usage is reported", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "fqn", - "in": "path", - "description": "Fully qualified name of the entity that uniquely identifies an entity", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "Usage information a given date", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DailyCount" - } - } - } - }, - "responses": { - "200": { - "description": "Usage information", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityUsage" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/usage/{entity}/{id}": { - "get": { - "tags": ["Usage"], - "summary": "Get usage by id", - "description": "Get usage details for an entity identified by `id`.", - "operationId": "getEntityUsageByID", - "parameters": [ - { - "name": "entity", - "in": "path", - "description": "Entity type for which usage is requested", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "id", - "in": "path", - "description": "Entity id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "days", - "in": "query", - "description": "Usage for number of days going back from the given date (default=1, min=1, max=30)", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "date", - "in": "query", - "description": "Usage for number of days going back from this date in ISO 8601 format. (default = currentDate)", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Entity usage", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityUsage" - } - } - } - }, - "404": { - "description": "Entity for instance {id} is not found" - } - } - }, - "put": { - "tags": ["Usage"], - "summary": "Report usage", - "description": "Report usage information for an entity on a given date. System stores last 30 days of usage information. Usage information older than 30 days is deleted.", - "operationId": "reportEntityUsageWithID_1", - "parameters": [ - { - "name": "entity", - "in": "path", - "description": "Entity type for which usage is reported", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "id", - "in": "path", - "description": "Entity id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "Usage information a given date", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DailyCount" - } - } - } - }, - "responses": { - "200": { - "description": "Usage information", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityUsage" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - }, - "post": { - "tags": ["Usage"], - "summary": "Report usage", - "description": "Report usage information for an entity on a given date. System stores last 30 days of usage information. Usage information older than 30 days is deleted.", - "operationId": "reportEntityUsageWithID", - "parameters": [ - { - "name": "entity", - "in": "path", - "description": "Entity type for which usage is reported", - "required": true, - "schema": { - "type": "string", - "example": "table, report, metrics, or dashboard" - } - }, - { - "name": "id", - "in": "path", - "description": "Entity id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "Usage information a given date", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DailyCount" - } - } - } - }, - "responses": { - "200": { - "description": "Usage information", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityUsage" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users": { - "get": { - "tags": ["Users"], - "summary": "List users", - "description": "Get a list of users. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.", - "operationId": "listUsers", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "profile,roles,teams,follows,owns" - } - }, - { - "name": "team", - "in": "query", - "description": "Filter users by team", - "schema": { - "type": "string", - "example": "Legal" - } - }, - { - "name": "limit", - "in": "query", - "description": "Limit the number users returned. (1 to 1000000, default = 10)", - "schema": { - "maximum": 1000000, - "minimum": 0, - "type": "integer", - "format": "int32", - "default": 10 - } - }, - { - "name": "before", - "in": "query", - "description": "Returns list of users before this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "description": "Returns list of users after this cursor", - "schema": { - "type": "string" - } - }, - { - "name": "isAdmin", - "in": "query", - "description": "Returns list of admin users if set to true", - "schema": { - "type": "boolean" - } - }, - { - "name": "isBot", - "in": "query", - "description": "Returns list of bot users if set to true", - "schema": { - "type": "boolean" - } - }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserList" - } - } + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } }, - "put": { - "tags": ["Users"], - "summary": "Update user", - "description": "Create or Update a user.", - "operationId": "createOrUpdateUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateUser" - } - } - } - }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateUser" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - }, - "post": { - "tags": ["Users"], - "summary": "Create a user", - "description": "Create a new user.", - "operationId": "createUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateUser" - } - } - } - }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/auth-mechanism/{id}": { - "get": { - "tags": ["Users"], - "summary": "Get Authentication Mechanism for a Bot User", - "description": "Get Authentication Mechanism for a Bot User.", - "operationId": "getAuthenticationMechanismBotUser", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the user", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AuthenticationMechanism" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/changePassword": { - "put": { - "tags": ["Users"], - "summary": "Change Password For User", - "description": "Create a new user.", - "operationId": "changeUserPassword", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangePasswordRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/checkEmailInUse": { - "post": { - "tags": ["Users"], - "summary": "Check if a mail is already in use", - "description": "Check if a mail is already in use", - "operationId": "checkEmailInUse", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EmailRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Return true or false", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/checkEmailVerified": { - "post": { - "tags": ["Users"], - "summary": "Check if a mail is verified", - "description": "Check if a mail is already in use", - "operationId": "checkEmailIsVerified", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EmailRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Return true or false", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/documentation/csv": { - "get": { - "tags": ["Users"], - "summary": "Get CSV documentation for user import/export", - "operationId": "getCsvDocumentation_2", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/v1/users/export": { - "get": { - "tags": ["Users"], - "summary": "Export users in a team in CSV format", - "operationId": "exportUsers", - "parameters": [ - { - "name": "team", - "in": "query", - "description": "Name of the team to under which the users are imported to", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Exported csv with user information", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/v1/users/generatePasswordResetLink": { - "post": { - "tags": ["Users"], - "summary": "Generate Password Reset Link", - "description": "Generate Password Reset Link", - "operationId": "generatePasswordResetLink", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EmailRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The user " - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/generateRandomPwd": { - "get": { - "tags": ["Users"], - "summary": "Generate a random password", - "description": "Generate a random password", - "operationId": "generateRandomPwd", - "responses": { - "200": { - "description": "Random pwd" - } - } - } - }, - "/v1/users/generateToken/{id}": { - "put": { - "tags": ["Users"], - "summary": "Generate JWT Token for a Bot User", - "description": "Generate JWT Token for a Bot User.", - "operationId": "generateJWTTokenForBotUser", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the user", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GenerateTokenRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "type": "string", - "enum": ["OneHour", "1", "7", "30", "60", "90", "Unlimited"] - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/import": { - "put": { - "tags": ["Users"], - "summary": "Import from CSV to create, and update teams.", - "operationId": "importTeams_1", - "parameters": [ - { - "name": "team", - "in": "query", - "description": "Name of the team to under which the users are imported to", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "dryRun", - "in": "query", - "description": "Dry-run when true is used for validating the CSV without really importing it. (default=true)", - "schema": { - "type": "boolean", - "default": true - } - } - ], - "requestBody": { - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "responses": { - "200": { - "description": "Import result", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CsvImportResult" - } - } - } - } - } - } - }, - "/v1/users/loggedInUser": { - "get": { - "tags": ["Users"], - "summary": "Get current logged in user", - "description": "Get the user who is authenticated and is currently logged in.", - "operationId": "getCurrentLoggedInUser", - "parameters": [ - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "profile,roles,teams,follows,owns" - } - } - ], - "responses": { - "200": { - "description": "The user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "404": { - "description": "User not found" - } - } - } - }, - "/v1/users/loggedInUser/groupTeams": { - "get": { - "tags": ["Users"], - "summary": "Get group type of teams for current logged in user", - "description": "Get the group type of teams of user who is authenticated and is currently logged in.", - "operationId": "getCurrentLoggedInUserGroupTeams", - "responses": { - "200": { - "description": "The teams of type 'Group' that a user belongs to", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } - } - } - } - }, - "404": { - "description": "User not found" - } - } - } - }, - "/v1/users/login": { - "post": { - "tags": ["Users"], - "summary": "Login User with email (plain-text) and Password (encoded in base 64)", - "description": "Login User with email(plain-text) and Password (encoded in base 64)", - "operationId": "loginUserWithPwd", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LoginRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Returns the Jwt Token Response ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JwtResponse" - } - } - } - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/logout": { - "post": { - "tags": ["Users"], - "summary": "Logout a User(Only called for saml and basic Auth)", - "description": "Logout a User(Only called for saml and basic Auth)", - "operationId": "logoutUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LogoutRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The user " - }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/name/{name}": { - "get": { - "tags": ["Users"], - "summary": "Get a user by name", - "description": "Get a user by `name`.", - "operationId": "getUserByFQN", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the user", - "required": true, - "schema": { - "type": "string" + "CreateDatabase" : { + "required" : [ "name", "service" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "profile,roles,teams,follows,owns" - } + "default" : { + "type" : "boolean" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" - } - } - ], - "responses": { - "200": { - "description": "The user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } + "description" : { + "type" : "string" }, - "404": { - "description": "User for instance {name} is not found" - } - } - }, - "delete": { - "tags": ["Users"], - "summary": "Delete a user", - "description": "Users can't be deleted but are soft-deleted.", - "operationId": "deleteUserByName", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } + "displayName" : { + "type" : "string" }, - { - "name": "name", - "in": "path", - "description": "Name of the user", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" + "domain" : { + "type" : "string" }, - "404": { - "description": "User for instance {name} is not found" - } - } - } - }, - "/v1/users/password/reset": { - "post": { - "tags": ["Users"], - "summary": "Reset Password For User", - "description": "Reset User Password", - "operationId": "resetUserPassword", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PasswordResetRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } + "extension" : { + "type" : "object" }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/refresh": { - "post": { - "tags": ["Users"], - "summary": "Provide access token to User with refresh token", - "description": "Provide access token to User with refresh token", - "operationId": "refreshToken", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TokenRefreshRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JwtResponse" - } - } - } + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/registrationConfirmation": { - "put": { - "tags": ["Users"], - "summary": "Confirm User Email", - "description": "Confirm User Email", - "operationId": "confirmUserEmail", - "parameters": [ - { - "name": "token", - "in": "query", - "description": "Token sent for Email Confirmation", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The user " + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/resendRegistrationToken": { - "put": { - "tags": ["Users"], - "summary": "Resend Registration Token", - "description": "Resend Registration Token", - "operationId": "resendRegistrationToken", - "parameters": [ - { - "name": "user", - "in": "query", - "description": "Token sent for Email Confirmation Earlier", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The user " + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/restore": { - "put": { - "tags": ["Users"], - "summary": "Restore a soft deleted User.", - "description": "Restore a soft deleted User.", - "operationId": "restore_26", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RestoreEntity" - } - } - } - }, - "responses": { - "200": { - "description": "Successfully restored the User ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - } - } - } - }, - "/v1/users/revokeToken": { - "put": { - "tags": ["Users"], - "summary": "Revoke JWT Token for a Bot User", - "description": "Revoke JWT Token for a Bot User.", - "operationId": "revokeJWTTokenForBotUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevokeTokenRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JWTAuthMechanism" - } - } - } + "retentionPeriod" : { + "type" : "string" }, - "400": { - "description": "Bad request" - } - } - } - }, - "/v1/users/security/token": { - "get": { - "tags": ["Users"], - "summary": "Get personal access token to User", - "description": "Get a personal access token", - "operationId": "getPersonalAccessToken", - "parameters": [ - { - "name": "username", - "in": "query", - "description": "User Name of the User for which to get. (Default = `false`)", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "List Of Personal Access Tokens ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonalAccessTokenList" - } - } - } + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "400": { - "description": "Bad request" - } - } - }, - "put": { - "tags": ["Users"], - "summary": "Provide access token to User", - "description": "Provide access token to User", - "operationId": "createPersonalAccessToken", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePersonalToken" - } - } - } - }, - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonalAccessToken" - } - } - } + "sourceUrl" : { + "type" : "string" }, - "400": { - "description": "Bad request" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } - } - }, - "/v1/users/security/token/revoke": { - "put": { - "tags": ["Users"], - "summary": "Revoke personal access token to User", - "description": "Revoke personal access token", - "operationId": "revokePersonalAccessToken", - "parameters": [ - { - "name": "username", - "in": "query", - "description": "Username in case admin is revoking. (Default = `false`)", - "schema": { - "type": "string" + }, + "CreateDatabaseSchema" : { + "required" : [ "database", "name" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - { - "name": "removeAll", - "in": "query", - "description": "Remove All tokens of the user. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RevokePersonalTokenRequest" - } + "database" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "retentionPeriod" : { + "type" : "string" + }, + "sourceUrl" : { + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } - }, - "responses": { - "200": { - "description": "The Personal access token ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersonalAccessTokenList" - } - } + } + }, + "CreateDatabaseService" : { + "required" : [ "name", "serviceType" ], + "type" : "object", + "properties" : { + "connection" : { + "$ref" : "#/components/schemas/DatabaseConnection" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "400": { - "description": "Bad request" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "BigQuery", "Mysql", "Redshift", "Snowflake", "Postgres", "Mssql", "Oracle", "Athena", "Hive", "Impala", "Presto", "Trino", "Vertica", "Glue", "MariaDB", "Druid", "Db2", "Clickhouse", "Databricks", "AzureSQL", "DynamoDB", "SingleStore", "SQLite", "DeltaLake", "Salesforce", "PinotDB", "Datalake", "DomoDatabase", "QueryLog", "CustomDatabase", "Dbt", "SapHana", "MongoDB", "Couchbase", "Greenplum" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } - } - }, - "/v1/users/signup": { - "post": { - "tags": ["Users"], - "summary": "Register User", - "description": "Register a new User", - "operationId": "registerUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RegistrationRequest" - } + }, + "CreateDocument" : { + "required" : [ "data", "entityType", "fullyQualifiedName", "name" ], + "type" : "object", + "properties" : { + "data" : { + "$ref" : "#/components/schemas/Data" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - }, - "responses": { - "200": { - "description": "The user " }, - "400": { - "description": "Bad request" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "entityType" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } - } - }, - "/v1/users/token/{id}": { - "get": { - "tags": ["Users"], - "summary": "Get JWT Token for a Bot User", - "description": "Get JWT Token for a Bot User.", - "operationId": "getJWTTokenForBotUser", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the user", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "CreateDomain" : { + "required" : [ "description", "domainType", "name" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "The user ", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JWTAuthMechanism" - } - } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "domainType" : { + "type" : "string", + "enum" : [ "Source-aligned", "Consumer-aligned", "Aggregate" ] + }, + "experts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "400": { - "description": "Bad request" + "extension" : { + "type" : "object" + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "parent" : { + "type" : "string" + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } - } - }, - "/v1/users/{id}": { - "get": { - "tags": ["Users"], - "summary": "Get a user", - "description": "Get a user by `id`", - "operationId": "getUserByID", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the user", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } + }, + "CreateEventSubscription" : { + "required" : [ "alertType", "name", "subscriptionType" ], + "type" : "object", + "properties" : { + "alertType" : { + "type" : "string", + "enum" : [ "ChangeEvent", "DataInsightReport", "Task/Conversation/Announcement" ] }, - { - "name": "fields", - "in": "query", - "description": "Fields requested in the returned resource", - "schema": { - "type": "string", - "example": "profile,roles,teams,follows,owns" - } + "batchSize" : { + "type" : "integer", + "format" : "int32" }, - { - "name": "include", - "in": "query", - "description": "Include all, deleted, or non-deleted entities.", - "schema": { - "type": "string", - "enum": ["all", "deleted", "non-deleted"], - "default": "non-deleted" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "The user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "enabled" : { + "type" : "boolean" + }, + "extension" : { + "type" : "object" + }, + "filteringRules" : { + "$ref" : "#/components/schemas/FilteringRules" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "readTimeout" : { + "type" : "integer", + "format" : "int32" + }, + "subscriptionConfig" : { + "type" : "object" + }, + "subscriptionType" : { + "type" : "string", + "enum" : [ "GenericWebhook", "SlackWebhook", "MsTeamsWebhook", "GChatWebhook", "Email", "ActivityFeed", "DataInsight" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "404": { - "description": "User for instance {id} is not found" + "timeout" : { + "type" : "integer", + "format" : "int32" + }, + "trigger" : { + "$ref" : "#/components/schemas/TriggerConfig" } } }, - "delete": { - "tags": ["Users"], - "summary": "Delete a user", - "description": "Users can't be deleted but are soft-deleted.", - "operationId": "deleteUser", - "parameters": [ - { - "name": "hardDelete", - "in": "query", - "description": "Hard delete the entity. (Default = `false`)", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "id", - "in": "path", - "description": "Id of the user", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + "CreateGlossary" : { + "required" : [ "description", "name" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "404": { - "description": "User for instance {id} is not found" - } - } - }, - "patch": { - "tags": ["Users"], - "summary": "Update a user", - "description": "Update an existing user using JsonPatch.", - "externalDocs": { - "description": "JsonPatch RFC", - "url": "https://tools.ietf.org/html/rfc6902" - }, - "operationId": "patchUser", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the user", - "required": true, - "schema": { - "type": "string", - "format": "uuid" - } - } - ], - "requestBody": { - "description": "JsonPatch with array of operations", - "content": { - "application/json-patch+json": { - "schema": { - "type": "object" - }, - "example": "[{op:remove, path:/a},{op:add, path: /b, value: val}]" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "mutuallyExclusive" : { + "type" : "boolean" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "type" : "string" } - } - }, - "responses": { - "default": { - "description": "default response", - "content": { - "application/json": {} + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } - } - }, - "/v1/users/{id}/versions": { - "get": { - "tags": ["Users"], - "summary": "List user versions", - "description": "Get a list of all the versions of a user identified by `id`", - "operationId": "listAllUserVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the user", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "CreateGlossaryTerm" : { + "required" : [ "description", "glossary", "name" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "List of user versions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntityHistory" - } - } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "glossary" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "mutuallyExclusive" : { + "type" : "boolean" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "parent" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "references" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TermReference" } - } - } - } - }, - "/v1/users/{id}/versions/{version}": { - "get": { - "tags": ["Users"], - "summary": "Get a version of the user", - "description": "Get a version of the user by given `id`", - "operationId": "getSpecificUserVersion", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Id of the user", - "required": true, - "schema": { - "type": "string", - "format": "uuid" + }, + "relatedTerms" : { + "type" : "array", + "items" : { + "type" : "string" } }, - { - "name": "version", - "in": "path", - "description": "User version number in the form `major`.`minor`", - "required": true, - "schema": { - "type": "string", - "example": "0.1 or 1.1" + "reviewers" : { + "type" : "array", + "items" : { + "type" : "string" } - } - ], - "responses": { - "200": { - "description": "user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "synonyms" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "404": { - "description": "User for instance {id} and version {version} is not found" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } - } - } - }, - "components": { - "schemas": { - "AddLineage": { - "required": ["edge"], - "type": "object", - "properties": { - "edge": { - "$ref": "#/components/schemas/EntitiesEdge" + }, + "CreateLogicalTestCases" : { + "required" : [ "testCaseIds", "testSuiteId" ], + "type" : "object", + "properties" : { + "testCaseIds" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" + } + }, + "testSuiteId" : { + "type" : "string", + "format" : "uuid" } } }, - "Aggregation": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "CreateMessagingService" : { + "required" : [ "name", "serviceType" ], + "type" : "object", + "properties" : { + "connection" : { + "$ref" : "#/components/schemas/MessagingConnection" }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "object" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "name": { - "type": "string" + "description" : { + "type" : "string" }, - "type": { - "type": "string" - } - } - }, - "AggregationProfileShardResult": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "profileResults": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProfileResult" + "serviceType" : { + "type" : "string", + "enum" : [ "Kafka", "Redpanda", "Kinesis", "CustomMessaging" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } }, - "Aggregations": { - "type": "object", - "properties": { - "asMap": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Aggregation" + "CreateMetadataService" : { + "required" : [ "name", "serviceType" ], + "type" : "object", + "properties" : { + "connection" : { + "$ref" : "#/components/schemas/MetadataConnection" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "fragment": { - "type": "boolean" - } - } - }, - "AnnouncementDetails": { - "required": ["endTime", "startTime"], - "type": "object", - "properties": { - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "endTime": { - "type": "integer", - "format": "int64" + "displayName" : { + "type" : "string" }, - "startTime": { - "type": "integer", - "format": "int64" - } - } - }, - "AuthenticationMechanism": { - "type": "object", - "properties": { - "authType": { - "type": "string", - "enum": ["JWT", "SSO", "BASIC"] + "domain" : { + "type" : "string" }, - "config": { - "type": "object" + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "Amundsen", "MetadataES", "OpenMetadata", "Atlas" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } }, - "Bot": { - "required": ["botUser", "id", "name"], - "type": "object", - "properties": { - "botUser": { - "$ref": "#/components/schemas/EntityReference" + "CreateMlModel" : { + "required" : [ "algorithm", "name", "service" ], + "type" : "object", + "properties" : { + "algorithm" : { + "type" : "string" + }, + "dashboard" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "description" : { + "type" : "string" }, - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "displayName" : { + "type" : "string" }, - "deleted": { - "type": "boolean" + "domain" : { + "type" : "string" }, - "description": { - "type": "string" + "extension" : { + "type" : "object" }, - "displayName": { - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "extension": { - "type": "object" + "mlFeatures" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlFeature" + } }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "mlHyperParameters" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlHyperParameter" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "mlStore" : { + "$ref" : "#/components/schemas/MlStore" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "id": { - "type": "string", - "format": "uuid" + "server" : { + "type" : "string", + "format" : "uri" }, - "name": { - "maxLength": 64, - "minLength": 1, - "pattern": "^(?U)[\\w\\-.]+$", - "type": "string" + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "sourceUrl" : { + "type" : "string" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "target" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + } + } + }, + "CreateMlModelService" : { + "required" : [ "name", "serviceType" ], + "type" : "object", + "properties" : { + "connection" : { + "$ref" : "#/components/schemas/MlModelConnection" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" }, - "updatedBy": { - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "version": { - "type": "number", - "format": "double" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "Mlflow", "Sklearn", "CustomMlModel", "SageMaker" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } }, - "BotList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Bot" + "CreatePersona" : { + "required" : [ "name" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "users" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" + } } } }, - "BytesReference": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "CreatePersonalToken" : { + "required" : [ "JWTTokenExpiry", "tokenName" ], + "type" : "object", + "properties" : { + "JWTTokenExpiry" : { + "type" : "string", + "enum" : [ "OneHour", "1", "7", "30", "60", "90", "Unlimited" ] + }, + "tokenName" : { + "type" : "string" } } }, - "ChangeDescription": { - "type": "object", - "properties": { - "fieldsAdded": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FieldChange" - } + "CreatePipeline" : { + "required" : [ "name", "service" ], + "type" : "object", + "properties" : { + "concurrency" : { + "type" : "integer", + "format" : "int32" }, - "fieldsDeleted": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FieldChange" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "fieldsUpdated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FieldChange" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "pipelineLocation" : { + "type" : "string" + }, + "scheduleInterval" : { + "type" : "string" + }, + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "sourceUrl" : { + "type" : "string" + }, + "startDate" : { + "type" : "string", + "format" : "date-time" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "previousVersion": { - "type": "number", - "format": "double" + "tasks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Task" + } } } }, - "ChangeEvent": { - "required": ["entityId", "entityType", "eventType", "timestamp"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "CreatePipelineService" : { + "required" : [ "name", "serviceType" ], + "type" : "object", + "properties" : { + "connection" : { + "$ref" : "#/components/schemas/PipelineConnection" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "currentVersion": { - "type": "number", - "format": "double" + "description" : { + "type" : "string" }, - "entity": { - "type": "object" + "displayName" : { + "type" : "string" }, - "entityFullyQualifiedName": { - "type": "string" + "domain" : { + "type" : "string" }, - "entityId": { - "type": "string", - "format": "uuid" + "extension" : { + "type" : "object" }, - "entityType": { - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "eventType": { - "type": "string", - "enum": [ - "entityCreated", - "entityUpdated", - "entitySoftDeleted", - "entityDeleted" - ] + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "previousVersion": { - "type": "number", - "format": "double" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "timestamp": { - "type": "integer", - "format": "int64" + "scheduleInterval" : { + "type" : "string" }, - "userName": { - "type": "string" + "serviceType" : { + "type" : "string", + "enum" : [ "Airflow", "GluePipeline", "Airbyte", "Fivetran", "Dagster", "Nifi", "DomoPipeline", "CustomPipeline", "DatabricksPipeline", "Spline" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } }, - "ChangePasswordRequest": { - "required": ["confirmPassword", "newPassword"], - "type": "object", - "properties": { - "confirmPassword": { - "type": "string" + "CreatePolicy" : { + "required" : [ "name", "rules" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "enabled" : { + "type" : "boolean" + }, + "extension" : { + "type" : "object" }, - "newPassword": { - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "oldPassword": { - "type": "string" + "location" : { + "type" : "string", + "format" : "uuid" }, - "requestType": { - "type": "string", - "enum": ["SELF", "USER"] + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "rules" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Rule" + } + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + } + } + }, + "CreatePost" : { + "required" : [ "from", "message" ], + "type" : "object", + "properties" : { + "from" : { + "type" : "string" }, - "username": { - "type": "string" + "message" : { + "type" : "string" } } }, - "Chart": { - "required": ["id", "name", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "CreateQuery" : { + "required" : [ "query", "service" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "chartType": { - "type": "string", - "enum": [ - "Line", - "Table", - "Bar", - "Area", - "Pie", - "Histogram", - "Scatter", - "Text", - "BoxPlot", - "Other" - ] + "description" : { + "type" : "string" }, - "deleted": { - "type": "boolean" + "displayName" : { + "type" : "string" }, - "description": { - "type": "string" + "domain" : { + "type" : "string" }, - "displayName": { - "type": "string" + "duration" : { + "type" : "number", + "format" : "double" }, - "extension": { - "type": "object" + "exclude_usage" : { + "type" : "boolean" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } + "extension" : { + "type" : "object" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "href": { - "type": "string", - "format": "uri" + "processedLineage" : { + "type" : "boolean" }, - "id": { - "type": "string", - "format": "uuid" + "query" : { + "type" : "string" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "queryDate" : { + "type" : "integer", + "format" : "int64" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "queryUsedIn" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "query_type" : { + "type" : "string" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "serviceType": { - "type": "string", - "enum": [ - "Superset", - "Looker", - "Tableau", - "Redash", - "Metabase", - "PowerBI", - "Mode", - "CustomDashboard", - "DomoDashboard", - "QuickSight" - ] + "triggeredBy" : { + "$ref" : "#/components/schemas/EntityReference" }, - "sourceUrl": { - "type": "string" + "usedBy" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" + } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "users" : { + "type" : "array", + "items" : { + "type" : "string" } + } + } + }, + "CreateRole" : { + "required" : [ "name", "policies" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" + }, + "extension" : { + "type" : "object" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "updatedBy": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "usageSummary": { - "$ref": "#/components/schemas/UsageDetails" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "version": { - "type": "number", - "format": "double" + "policies" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "votes": { - "$ref": "#/components/schemas/Votes" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } }, - "ChartList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Chart" + "CreateSearchIndex" : { + "required" : [ "fields", "name", "service" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "extension" : { + "type" : "object" + }, + "fields" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SearchIndexField" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "searchIndexSettings" : { + "$ref" : "#/components/schemas/SearchIndexSettings" + }, + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } }, - "Classification": { - "required": ["description", "name"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "CreateSearchService" : { + "required" : [ "name", "serviceType" ], + "type" : "object", + "properties" : { + "connection" : { + "$ref" : "#/components/schemas/SearchConnection" }, - "deleted": { - "type": "boolean" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "disabled": { - "type": "boolean" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "type" : "string" }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "id": { - "type": "string", - "format": "uuid" + "serviceType" : { + "type" : "string", + "enum" : [ "ElasticSearch", "OpenSearch", "CustomSearch" ] }, - "mutuallyExclusive": { - "type": "boolean" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + } + } + }, + "CreateStorageService" : { + "required" : [ "name", "serviceType" ], + "type" : "object", + "properties" : { + "connection" : { + "$ref" : "#/components/schemas/StorageConnection" }, - "name": { - "maxLength": 64, - "minLength": 2, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "description" : { + "type" : "string" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "displayName" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } + "domain" : { + "type" : "string" }, - "termCount": { - "type": "integer", - "format": "int32" + "extension" : { + "type" : "object" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "updatedBy": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "usageCount": { - "type": "integer", - "format": "int32" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "version": { - "type": "number", - "format": "double" + "serviceType" : { + "type" : "string", + "enum" : [ "S3", "ADLS", "CustomStorage" ] }, - "votes": { - "$ref": "#/components/schemas/Votes" - } - } - }, - "ClassificationList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Classification" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - }, - "paging": { - "$ref": "#/components/schemas/Paging" - } - } - }, - "CloseTask": { - "required": ["comment"], - "type": "object", - "properties": { - "comment": { - "type": "string" - } - } - }, - "Clusters": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" - }, - "skipped": { - "type": "integer", - "format": "int32" - }, - "successful": { - "type": "integer", - "format": "int32" - }, - "total": { - "type": "integer", - "format": "int32" - } - } - }, - "CollectorResult": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "profiledChildren": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CollectorResult" - } - }, - "reason": { - "type": "string" - }, - "time": { - "type": "integer", - "format": "int64" - } - } - }, - "Column": { - "required": ["dataType", "name"], - "type": "object", - "properties": { - "arrayDataType": { - "type": "string", - "enum": [ - "NUMBER", - "TINYINT", - "SMALLINT", - "INT", - "BIGINT", - "BYTEINT", - "BYTES", - "FLOAT", - "DOUBLE", - "DECIMAL", - "NUMERIC", - "TIMESTAMP", - "TIMESTAMPZ", - "TIME", - "DATE", - "DATETIME", - "INTERVAL", - "STRING", - "MEDIUMTEXT", - "TEXT", - "CHAR", - "LONG", - "VARCHAR", - "BOOLEAN", - "BINARY", - "VARBINARY", - "ARRAY", - "BLOB", - "LONGBLOB", - "MEDIUMBLOB", - "MAP", - "STRUCT", - "UNION", - "SET", - "GEOGRAPHY", - "ENUM", - "JSON", - "UUID", - "VARIANT", - "GEOMETRY", - "BYTEA", - "AGGREGATEFUNCTION", - "ERROR", - "FIXED", - "RECORD", - "NULL", - "SUPER", - "HLLSKETCH", - "PG_LSN", - "PG_SNAPSHOT", - "TSQUERY", - "TXID_SNAPSHOT", - "XML", - "MACADDR", - "TSVECTOR", - "UNKNOWN", - "CIDR", - "INET", - "CLOB", - "ROWID", - "LOWCARDINALITY", - "YEAR", - "POINT", - "POLYGON", - "TUPLE", - "SPATIAL", - "TABLE" - ] - }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" - } - }, - "constraint": { - "type": "string", - "enum": ["NULL", "NOT_NULL", "UNIQUE", "PRIMARY_KEY"] - }, - "customMetrics": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomMetric" - } - }, - "dataLength": { - "type": "integer", - "format": "int32" - }, - "dataType": { - "type": "string", - "enum": [ - "NUMBER", - "TINYINT", - "SMALLINT", - "INT", - "BIGINT", - "BYTEINT", - "BYTES", - "FLOAT", - "DOUBLE", - "DECIMAL", - "NUMERIC", - "TIMESTAMP", - "TIMESTAMPZ", - "TIME", - "DATE", - "DATETIME", - "INTERVAL", - "STRING", - "MEDIUMTEXT", - "TEXT", - "CHAR", - "LONG", - "VARCHAR", - "BOOLEAN", - "BINARY", - "VARBINARY", - "ARRAY", - "BLOB", - "LONGBLOB", - "MEDIUMBLOB", - "MAP", - "STRUCT", - "UNION", - "SET", - "GEOGRAPHY", - "ENUM", - "JSON", - "UUID", - "VARIANT", - "GEOMETRY", - "BYTEA", - "AGGREGATEFUNCTION", - "ERROR", - "FIXED", - "RECORD", - "NULL", - "SUPER", - "HLLSKETCH", - "PG_LSN", - "PG_SNAPSHOT", - "TSQUERY", - "TXID_SNAPSHOT", - "XML", - "MACADDR", - "TSVECTOR", - "UNKNOWN", - "CIDR", - "INET", - "CLOB", - "ROWID", - "LOWCARDINALITY", - "YEAR", - "POINT", - "POLYGON", - "TUPLE", - "SPATIAL", - "TABLE" - ] - }, - "dataTypeDisplay": { - "type": "string" - }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "jsonSchema": { - "type": "string" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" - }, - "ordinalPosition": { - "type": "integer", - "format": "int32" - }, - "precision": { - "type": "integer", - "format": "int32" - }, - "profile": { - "$ref": "#/components/schemas/ColumnProfile" - }, - "scale": { - "type": "integer", - "format": "int32" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "ColumnJoin": { - "type": "object", - "properties": { - "columnName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" - }, - "joinedWith": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JoinedWith" - } - } - } - }, - "ColumnLineage": { - "type": "object", - "properties": { - "fromColumns": { - "type": "array", - "items": { - "type": "string" - } - }, - "function": { - "type": "string" - }, - "toColumn": { - "maxLength": 256, - "minLength": 1, - "type": "string" } } }, - "ColumnProfile": { - "required": ["name", "timestamp"], - "type": "object", - "properties": { - "customMetricsProfile": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomMetricProfile" + "CreateStoredProcedure" : { + "required" : [ "name", "storedProcedureCode" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "distinctCount": { - "type": "number", - "format": "double" + "databaseSchema" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "distinctProportion": { - "type": "number", - "format": "double" + "description" : { + "type" : "string" }, - "duplicateCount": { - "type": "number", - "format": "double" + "displayName" : { + "type" : "string" }, - "firstQuartile": { - "type": "number", - "format": "double" + "domain" : { + "type" : "string" }, - "histogram": { - "$ref": "#/components/schemas/Histogram" + "extension" : { + "type" : "object" }, - "interQuartileRange": { - "type": "number", - "format": "double" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "max": { - "type": "object" + "name" : { + "maxLength" : 256, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" }, - "maxLength": { - "type": "number", - "format": "double" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "mean": { - "type": "number", - "format": "double" + "sourceUrl" : { + "type" : "string" }, - "median": { - "type": "number", - "format": "double" + "storedProcedureCode" : { + "$ref" : "#/components/schemas/StoredProcedureCode" }, - "min": { - "type": "object" - }, - "minLength": { - "type": "number", - "format": "double" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + } + } + }, + "CreateTable" : { + "required" : [ "columns", "databaseSchema", "name" ], + "type" : "object", + "properties" : { + "columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Column" + } }, - "missingCount": { - "type": "number", - "format": "double" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "missingPercentage": { - "type": "number", - "format": "double" + "databaseSchema" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "name": { - "type": "string" + "description" : { + "type" : "string" }, - "nonParametricSkew": { - "type": "number", - "format": "double" + "displayName" : { + "type" : "string" }, - "nullCount": { - "type": "number", - "format": "double" + "domain" : { + "type" : "string" }, - "nullProportion": { - "type": "number", - "format": "double" + "extension" : { + "type" : "object" }, - "stddev": { - "type": "number", - "format": "double" + "fileFormat" : { + "type" : "string", + "enum" : [ "csv", "tsv", "avro", "parquet", "json", "json.gz", "json.zip" ] }, - "sum": { - "type": "number", - "format": "double" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "thirdQuartile": { - "type": "number", - "format": "double" + "name" : { + "maxLength" : 256, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" }, - "timestamp": { - "type": "integer", - "format": "int64" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "uniqueCount": { - "type": "number", - "format": "double" + "retentionPeriod" : { + "type" : "string" }, - "uniqueProportion": { - "type": "number", - "format": "double" + "sourceUrl" : { + "type" : "string" }, - "validCount": { - "type": "number", - "format": "double" + "tableConstraints" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TableConstraint" + } }, - "valuesCount": { - "type": "number", - "format": "double" + "tablePartition" : { + "$ref" : "#/components/schemas/TablePartition" }, - "valuesPercentage": { - "type": "number", - "format": "double" + "tableProfilerConfig" : { + "$ref" : "#/components/schemas/TableProfilerConfig" }, - "variance": { - "type": "number", - "format": "double" - } - } - }, - "ColumnProfileList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ColumnProfile" - } + "tableType" : { + "type" : "string", + "enum" : [ "Regular", "External", "View", "SecureView", "MaterializedView", "Iceberg", "Local", "Partitioned", "Foreign", "Transient" ] }, - "errors": { - "type": "array", - "items": { - "type": "string" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "viewDefinition" : { + "type" : "string" } } }, - "ColumnProfilerConfig": { - "type": "object", - "properties": { - "columnName": { - "type": "string" + "CreateTableProfile" : { + "required" : [ "tableProfile" ], + "type" : "object", + "properties" : { + "columnProfile" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ColumnProfile" + } }, - "metrics": { - "type": "array", - "items": { - "type": "string" + "systemProfile" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SystemProfile" } + }, + "tableProfile" : { + "$ref" : "#/components/schemas/TableProfile" } } }, - "Container": { - "required": ["id", "name", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" - }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "CreateTag" : { + "required" : [ "description", "name" ], + "type" : "object", + "properties" : { + "associatedTags" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "dataModel": { - "$ref": "#/components/schemas/ContainerDataModel" - }, - "deleted": { - "type": "boolean" + "classification" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "extension": { - "type": "object" - }, - "fileFormats": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "zip", - "gz", - "zstd", - "csv", - "tsv", - "json", - "parquet", - "avro" - ] - } - }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "href": { - "type": "string", - "format": "uri" + "description" : { + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "displayName" : { + "type" : "string" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" + "domain" : { + "type" : "string" }, - "numberOfObjects": { - "type": "number", - "format": "double" + "extension" : { + "type" : "object" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "parent": { - "$ref": "#/components/schemas/EntityReference" + "mutuallyExclusive" : { + "type" : "boolean" }, - "prefix": { - "type": "string" + "name" : { + "maxLength" : 64, + "minLength" : 2, + "pattern" : "^(?U)[\\w'\\- .&()]+$", + "type" : "string" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "parent" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "serviceType": { - "type": "string", - "enum": ["S3", "CustomStorage"] + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "size": { - "type": "number", - "format": "double" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } - }, - "updatedAt": { - "type": "integer", - "format": "int64" - }, - "updatedBy": { - "type": "string" - }, - "version": { - "type": "number", - "format": "double" - }, - "votes": { - "$ref": "#/components/schemas/Votes" } } }, - "ContainerDataModel": { - "required": ["columns"], - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" + "CreateTaskDetails" : { + "required" : [ "assignees", "type" ], + "type" : "object", + "properties" : { + "assignees" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "isPartitioned": { - "type": "boolean" + "oldValue" : { + "type" : "string" + }, + "suggestion" : { + "type" : "string" + }, + "type" : { + "type" : "string", + "enum" : [ "RequestDescription", "UpdateDescription", "RequestTag", "UpdateTag", "RequestApproval", "Generic" ] } } }, - "ContainerList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Container" + "CreateTeam" : { + "required" : [ "name", "teamType" ], + "type" : "object", + "properties" : { + "children" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" - } - } - }, - "CreateBot": { - "required": ["botUser", "name"], - "type": "object", - "properties": { - "botUser": { - "type": "string" + "defaultRoles" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" + } }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "extension": { - "type": "object" + "domain" : { + "type" : "string" }, - "name": { - "maxLength": 64, - "minLength": 1, - "pattern": "^(?U)[\\w\\-.]+$", - "type": "string" + "email" : { + "maxLength" : 127, + "minLength" : 6, + "pattern" : "^[\\S.!#$%&’*+/=?^_`{|}~-]+@\\S+\\.\\S+$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "extension" : { + "type" : "object" }, - "provider": { - "type": "string", - "enum": ["system", "user"] - } - } - }, - "CreateChart": { - "required": ["name", "service"], - "type": "object", - "properties": { - "chartType": { - "type": "string", - "enum": [ - "Line", - "Table", - "Bar", - "Area", - "Pie", - "Histogram", - "Scatter", - "Text", - "BoxPlot", - "Other" - ] + "isJoinable" : { + "type" : "boolean" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "description": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "displayName": { - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "extension": { - "type": "object" + "parents" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" + } }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "policies" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "profile" : { + "$ref" : "#/components/schemas/Profile" }, - "service": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "sourceUrl": { - "type": "string" + "teamType" : { + "type" : "string", + "enum" : [ "Group", "Department", "Division", "BusinessUnit", "Organization" ] }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "users" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" } } } }, - "CreateClassification": { - "required": ["description", "name"], - "type": "object", - "properties": { - "description": { - "type": "string" + "CreateTestCase" : { + "required" : [ "entityLink", "name", "testDefinition", "testSuite" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "displayName": { - "type": "string" + "description" : { + "type" : "string" }, - "extension": { - "type": "object" + "displayName" : { + "type" : "string" }, - "mutuallyExclusive": { - "type": "boolean" + "domain" : { + "type" : "string" }, - "name": { - "maxLength": 64, - "minLength": 2, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "entityLink" : { + "pattern" : "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#%]+>$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "extension" : { + "type" : "object" }, - "provider": { - "type": "string", - "enum": ["system", "user"] - } - } - }, - "CreateContainer": { - "required": ["name", "service"], - "type": "object", - "properties": { - "dataModel": { - "$ref": "#/components/schemas/ContainerDataModel" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "description": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "displayName": { - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "extension": { - "type": "object" + "parameterValues" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestCaseParameterValue" + } }, - "fileFormats": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "zip", - "gz", - "zstd", - "csv", - "tsv", - "json", - "parquet", - "avro" - ] + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" + "testDefinition" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "numberOfObjects": { - "type": "number", - "format": "double" + "testSuite" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + } + } + }, + "CreateTestDefinition" : { + "required" : [ "description", "entityType", "name", "testPlatforms" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "description" : { + "type" : "string" }, - "parent": { - "$ref": "#/components/schemas/EntityReference" + "displayName" : { + "type" : "string" }, - "prefix": { - "type": "string" + "domain" : { + "type" : "string" }, - "service": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "entityType" : { + "type" : "string", + "enum" : [ "TABLE", "COLUMN" ] }, - "size": { - "type": "number", - "format": "double" + "extension" : { + "type" : "object" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreateCustomMetric": { - "required": ["columnName", "expression", "name"], - "type": "object", - "properties": { - "columnName": { - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "description": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "expression": { - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "parameterDefinition" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestCaseParameter" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "supportedDataTypes" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "NUMBER", "TINYINT", "SMALLINT", "INT", "BIGINT", "BYTEINT", "BYTES", "FLOAT", "DOUBLE", "DECIMAL", "NUMERIC", "TIMESTAMP", "TIMESTAMPZ", "TIME", "DATE", "DATETIME", "INTERVAL", "STRING", "MEDIUMTEXT", "TEXT", "CHAR", "LONG", "VARCHAR", "BOOLEAN", "BINARY", "VARBINARY", "ARRAY", "BLOB", "LONGBLOB", "MEDIUMBLOB", "MAP", "STRUCT", "UNION", "SET", "GEOGRAPHY", "ENUM", "JSON", "UUID", "VARIANT", "GEOMETRY", "BYTEA", "AGGREGATEFUNCTION", "ERROR", "FIXED", "RECORD", "NULL", "SUPER", "HLLSKETCH", "PG_LSN", "PG_SNAPSHOT", "TSQUERY", "TXID_SNAPSHOT", "XML", "MACADDR", "TSVECTOR", "UNKNOWN", "CIDR", "INET", "CLOB", "ROWID", "LOWCARDINALITY", "YEAR", "POINT", "POLYGON", "TUPLE", "SPATIAL", "TABLE", "NTEXT", "IMAGE", "IPV4", "IPV6", "DATETIMERANGE" ] + } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "updatedBy": { - "type": "string" + "testPlatforms" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "OpenMetadata", "GreatExpectations", "DBT", "Deequ", "Soda", "Other" ] + } } } }, - "CreateDashboard": { - "required": ["name", "service"], - "type": "object", - "properties": { - "charts": { - "type": "array", - "items": { - "type": "string" + "CreateTestSuite" : { + "required" : [ "name" ], + "type" : "object", + "properties" : { + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "dashboardType": { - "type": "string", - "enum": ["Dashboard", "Report"] + "description" : { + "type" : "string" }, - "dataModels": { - "type": "array", - "items": { - "type": "string" - } + "displayName" : { + "type" : "string" + }, + "domain" : { + "type" : "string" }, - "description": { - "type": "string" + "executableEntityReference" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "displayName": { - "type": "string" + "extension" : { + "type" : "object" }, - "extension": { - "type": "object" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 256, + "minLength" : 1, + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + } + } + }, + "CreateThread" : { + "required" : [ "about", "from", "message" ], + "type" : "object", + "properties" : { + "about" : { + "pattern" : "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#%]+>$", + "type" : "string" }, - "project": { - "type": "string" + "addressedTo" : { + "pattern" : "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#%]+>$", + "type" : "string" }, - "service": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "announcementDetails" : { + "$ref" : "#/components/schemas/AnnouncementDetails" }, - "sourceUrl": { - "type": "string" + "from" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } + "message" : { + "type" : "string" + }, + "taskDetails" : { + "$ref" : "#/components/schemas/CreateTaskDetails" + }, + "type" : { + "type" : "string", + "enum" : [ "Conversation", "Task", "Announcement" ] } } }, - "CreateDashboardDataModel": { - "required": ["columns", "dataModelType", "name", "service"], - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" + "CreateTopic" : { + "required" : [ "name", "partitions", "service" ], + "type" : "object", + "properties" : { + "cleanupPolicies" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "delete", "compact" ] } }, - "dataModelType": { - "type": "string", - "enum": [ - "TableauDataModel", - "SupersetDataModel", - "MetabaseDataModel", - "LookMlView", - "LookMlExplore", - "PowerBIDataModel" - ] + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "extension": { - "type": "object" + "domain" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "extension" : { + "type" : "object" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "project": { - "type": "string" + "maximumMessageSize" : { + "type" : "integer", + "format" : "int32" }, - "service": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "messageSchema" : { + "$ref" : "#/components/schemas/MessageSchema" }, - "serviceType": { - "type": "string", - "enum": [ - "Superset", - "Looker", - "Tableau", - "Redash", - "Metabase", - "PowerBI", - "Mode", - "CustomDashboard", - "DomoDashboard", - "QuickSight" - ] + "minimumInSyncReplicas" : { + "type" : "integer", + "format" : "int32" }, - "sql": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreateDashboardService": { - "required": ["connection", "name", "serviceType"], - "type": "object", - "properties": { - "connection": { - "$ref": "#/components/schemas/DashboardConnection" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "description": { - "type": "string" + "partitions" : { + "type" : "integer", + "format" : "int32" }, - "displayName": { - "type": "string" + "replicationFactor" : { + "type" : "integer", + "format" : "int32" }, - "extension": { - "type": "object" + "retentionSize" : { + "type" : "number", + "format" : "double" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "retentionTime" : { + "type" : "number", + "format" : "double" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "service" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "serviceType": { - "type": "string", - "enum": [ - "Superset", - "Looker", - "Tableau", - "Redash", - "Metabase", - "PowerBI", - "Mode", - "CustomDashboard", - "DomoDashboard", - "QuickSight" - ] + "sourceUrl" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } + }, + "topicConfig" : { + "$ref" : "#/components/schemas/TopicConfig" } } }, - "CreateDatabase": { - "required": ["name", "service"], - "type": "object", - "properties": { - "default": { - "type": "boolean" + "CreateType" : { + "required" : [ "description", "name", "nameSpace", "schema" ], + "type" : "object", + "properties" : { + "category" : { + "type" : "string", + "enum" : [ "field", "entity" ] }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "extension": { - "type": "object" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "retentionPeriod": { - "type": "string" - }, - "service": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreateDatabaseSchema": { - "required": ["database", "name"], - "type": "object", - "properties": { - "database": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "extension": { - "type": "object" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "retentionPeriod": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreateDatabaseService": { - "required": ["connection", "name", "serviceType"], - "type": "object", - "properties": { - "connection": { - "$ref": "#/components/schemas/DatabaseConnection" - }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "extension": { - "type": "object" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "serviceType": { - "type": "string", - "enum": [ - "BigQuery", - "Mysql", - "Redshift", - "Snowflake", - "Postgres", - "Mssql", - "Oracle", - "Athena", - "Hive", - "Impala", - "Presto", - "Trino", - "Vertica", - "Glue", - "MariaDB", - "Druid", - "Db2", - "Clickhouse", - "Databricks", - "AzureSQL", - "DynamoDB", - "SingleStore", - "SQLite", - "DeltaLake", - "Salesforce", - "PinotDB", - "Datalake", - "DomoDatabase", - "QueryLog", - "CustomDatabase", - "Dbt", - "SapHana", - "MongoDB" - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreateEventPublisherJob": { - "type": "object", - "properties": { - "afterCursor": { - "type": "string" - }, - "batchSize": { - "type": "integer", - "format": "int32" - }, - "entities": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "type": "string" - }, - "publisherType": { - "type": "string", - "enum": ["elasticSearch", "kafka"] - }, - "recreateIndex": { - "type": "boolean" - }, - "runMode": { - "type": "string", - "enum": ["stream", "batch"] - }, - "searchIndexMappingLanguage": { - "type": "string", - "enum": ["EN", "JP", "ZH"] - } - } - }, - "CreateEventSubscription": { - "required": ["alertType", "name", "subscriptionType"], - "type": "object", - "properties": { - "alertType": { - "type": "string", - "enum": [ - "ChangeEvent", - "DataInsightReport", - "Task/Conversation/Announcement" - ] - }, - "batchSize": { - "type": "integer", - "format": "int32" - }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "extension": { - "type": "object" - }, - "filteringRules": { - "$ref": "#/components/schemas/FilteringRules" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "domain" : { + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "extension" : { + "type" : "object" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "readTimeout": { - "type": "integer", - "format": "int32" + "name" : { + "pattern" : "^(?U)[\\w]+$", + "type" : "string" }, - "subscriptionConfig": { - "type": "object" + "nameSpace" : { + "type" : "string" }, - "subscriptionType": { - "type": "string", - "enum": [ - "GenericWebhook", - "SlackWebhook", - "MsTeamsWebhook", - "GChatWebhook", - "Email", - "ActivityFeed", - "DataInsight" - ] + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "timeout": { - "type": "integer", - "format": "int32" + "schema" : { + "type" : "string" }, - "trigger": { - "$ref": "#/components/schemas/TriggerConfig" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } } } }, - "CreateGlossary": { - "required": ["description", "name"], - "type": "object", - "properties": { - "description": { - "type": "string" + "CreateUser" : { + "required" : [ "email", "name" ], + "type" : "object", + "properties" : { + "authenticationMechanism" : { + "$ref" : "#/components/schemas/AuthenticationMechanism" }, - "displayName": { - "type": "string" + "botName" : { + "type" : "string" }, - "extension": { - "type": "object" + "confirmPassword" : { + "type" : "string" }, - "mutuallyExclusive": { - "type": "boolean" + "createPasswordType" : { + "type" : "string", + "enum" : [ "ADMIN_CREATE", "USER_CREATE" ] }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "dataProducts" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "defaultPersona" : { + "$ref" : "#/components/schemas/EntityReference" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "description" : { + "type" : "string" }, - "reviewers": { - "type": "array", - "items": { - "type": "string" - } + "displayName" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreateGlossaryTerm": { - "required": ["description", "glossary", "name"], - "type": "object", - "properties": { - "description": { - "type": "string" + "domain" : { + "type" : "string" }, - "displayName": { - "type": "string" + "email" : { + "maxLength" : 127, + "minLength" : 6, + "pattern" : "^[\\S.!#$%&’*+/=?^_`{|}~-]+@\\S+\\.\\S+$", + "type" : "string" }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "glossary": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "isAdmin" : { + "type" : "boolean" }, - "mutuallyExclusive": { - "type": "boolean" + "isBot" : { + "type" : "boolean" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "name" : { + "maxLength" : 64, + "minLength" : 1, + "pattern" : "^(?U)[\\w\\-.]+$", + "type" : "string" }, - "parent": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "password" : { + "type" : "string" }, - "references": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TermReference" + "personas" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "relatedTerms": { - "type": "array", - "items": { - "type": "string" - } + "profile" : { + "$ref" : "#/components/schemas/Profile" }, - "reviewers": { - "type": "array", - "items": { - "type": "string" + "roles" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" } }, - "synonyms": { - "type": "array", - "items": { - "type": "string" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreateLogicalTestCases": { - "required": ["testCaseIds", "testSuiteId"], - "type": "object", - "properties": { - "testCaseIds": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" + "teams" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" } }, - "testSuiteId": { - "type": "string", - "format": "uuid" + "timezone" : { + "type" : "string" } } }, - "CreateMessagingService": { - "required": ["connection", "name", "serviceType"], - "type": "object", - "properties": { - "connection": { - "$ref": "#/components/schemas/MessagingConnection" + "CsvImportResult" : { + "type" : "object", + "properties" : { + "abortReason" : { + "type" : "string" }, - "description": { - "type": "string" + "dryRun" : { + "type" : "boolean" }, - "displayName": { - "type": "string" + "importResultsCsv" : { + "type" : "string" }, - "extension": { - "type": "object" + "numberOfRowsFailed" : { + "type" : "integer", + "format" : "int32" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "numberOfRowsPassed" : { + "type" : "integer", + "format" : "int32" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "numberOfRowsProcessed" : { + "type" : "integer", + "format" : "int32" }, - "serviceType": { - "type": "string", - "enum": ["Kafka", "Redpanda", "Kinesis", "CustomMessaging"] - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } + "status" : { + "type" : "string", + "enum" : [ "success", "failure", "aborted", "partialSuccess" ] } } }, - "CreateMetadataService": { - "required": ["connection", "name", "serviceType"], - "type": "object", - "properties": { - "connection": { - "$ref": "#/components/schemas/MetadataConnection" + "CustomMetric" : { + "required" : [ "columnName", "expression", "name" ], + "type" : "object", + "properties" : { + "columnName" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "expression" : { + "type" : "string" }, - "description": { - "type": "string" + "id" : { + "type" : "string", + "format" : "uuid" }, - "displayName": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "extension": { - "type": "object" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "updatedBy" : { + "type" : "string" + } + } + }, + "CustomMetricProfile" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" }, - "serviceType": { - "type": "string", - "enum": ["Amundsen", "MetadataES", "OpenMetadata", "Atlas"] + "value" : { + "type" : "number", + "format" : "double" } } }, - "CreateMlModel": { - "required": ["algorithm", "name", "service"], - "type": "object", - "properties": { - "algorithm": { - "type": "string" + "CustomProperty" : { + "required" : [ "description", "name", "propertyType" ], + "type" : "object", + "properties" : { + "description" : { + "type" : "string" }, - "dashboard": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "name" : { + "pattern" : "^(?U)[\\w]+$", + "type" : "string" }, - "description": { - "type": "string" + "propertyType" : { + "$ref" : "#/components/schemas/EntityReference" + } + } + }, + "DailyCount" : { + "required" : [ "count", "date" ], + "type" : "object", + "properties" : { + "count" : { + "type" : "integer", + "format" : "int32" }, - "displayName": { - "type": "string" + "date" : { + "type" : "string" + } + } + }, + "Dashboard" : { + "required" : [ "id", "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "extension": { - "type": "object" + "charts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "mlFeatures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlFeature" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "mlHyperParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlHyperParameter" + "dashboardType" : { + "type" : "string", + "enum" : [ "Dashboard", "Report" ] + }, + "dataModels" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "mlStore": { - "$ref": "#/components/schemas/MlStore" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "deleted" : { + "type" : "boolean" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "description" : { + "type" : "string" }, - "server": { - "type": "string", - "format": "uri" + "displayName" : { + "type" : "string" }, - "service": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "target": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" - } - } - }, - "CreateMlModelService": { - "required": ["connection", "name", "serviceType"], - "type": "object", - "properties": { - "connection": { - "$ref": "#/components/schemas/MlModelConnection" + "extension" : { + "type" : "object" }, - "description": { - "type": "string" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "displayName": { - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "extension": { - "type": "object" + "href" : { + "type" : "string", + "format" : "uri" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "id" : { + "type" : "string", + "format" : "uuid" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "serviceType": { - "type": "string", - "enum": ["Mlflow", "Sklearn", "CustomMlModel", "SageMaker"] + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreatePersonalToken": { - "required": ["JWTTokenExpiry", "tokenName"], - "type": "object", - "properties": { - "JWTTokenExpiry": { - "type": "string", - "enum": ["OneHour", "1", "7", "30", "60", "90", "Unlimited"] + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "tokenName": { - "type": "string" - } - } - }, - "CreatePipeline": { - "required": ["name", "service"], - "type": "object", - "properties": { - "concurrency": { - "type": "integer", - "format": "int32" + "project" : { + "type" : "string" }, - "description": { - "type": "string" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "displayName": { - "type": "string" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "service" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" + "serviceType" : { + "type" : "string", + "enum" : [ "Superset", "Looker", "Tableau", "Redash", "Metabase", "PowerBI", "Mode", "CustomDashboard", "DomoDashboard", "QuickSight", "QlikSense", "Lightdash" ] }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "sourceUrl" : { + "type" : "string" }, - "pipelineLocation": { - "type": "string" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "scheduleInterval": { - "type": "string" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "service": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "sourceUrl": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "startDate": { - "type": "string", - "format": "date-time" + "usageSummary" : { + "$ref" : "#/components/schemas/UsageDetails" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } + "version" : { + "type" : "number", + "format" : "double" }, - "tasks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Task" - } + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "DashboardConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" } } }, - "CreatePipelineService": { - "required": ["connection", "name", "serviceType"], - "type": "object", - "properties": { - "connection": { - "$ref": "#/components/schemas/PipelineConnection" + "DashboardDataModel" : { + "required" : [ "columns", "dataModelType", "id", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "description": { - "type": "string" + "columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Column" + } }, - "displayName": { - "type": "string" + "dataModelType" : { + "type" : "string", + "enum" : [ "TableauDataModel", "SupersetDataModel", "MetabaseDataModel", "LookMlView", "LookMlExplore", "PowerBIDataModel", "QlikSenseDataModel" ] }, - "extension": { - "type": "object" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "deleted" : { + "type" : "boolean" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "description" : { + "type" : "string" }, - "scheduleInterval": { - "type": "string" + "displayName" : { + "type" : "string" }, - "serviceType": { - "type": "string", - "enum": [ - "Airflow", - "GluePipeline", - "Airbyte", - "Fivetran", - "Dagster", - "Nifi", - "DomoPipeline", - "CustomPipeline", - "DatabricksPipeline", - "Spline" - ] + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - } - }, - "CreatePolicy": { - "required": ["name", "rules"], - "type": "object", - "properties": { - "description": { - "type": "string" }, - "displayName": { - "type": "string" + "extension" : { + "type" : "object" }, - "enabled": { - "type": "boolean" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "location": { - "type": "string", - "format": "uuid" + "href" : { + "type" : "string", + "format" : "uri" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "id" : { + "type" : "string", + "format" : "uuid" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "rules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Rule" - } - } - } - }, - "CreatePost": { - "required": ["from", "message"], - "type": "object", - "properties": { - "from": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "message": { - "type": "string" - } - } - }, - "CreateQuery": { - "required": ["query"], - "type": "object", - "properties": { - "description": { - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "displayName": { - "type": "string" + "project" : { + "type" : "string" }, - "duration": { - "type": "number", - "format": "double" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "extension": { - "type": "object" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "service" : { + "$ref" : "#/components/schemas/EntityReference" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "serviceType" : { + "type" : "string", + "enum" : [ "Superset", "Looker", "Tableau", "Redash", "Metabase", "PowerBI", "Mode", "CustomDashboard", "DomoDashboard", "QuickSight", "QlikSense", "Lightdash" ] }, - "query": { - "type": "string" + "sql" : { + "type" : "string" }, - "queryDate": { - "type": "integer", - "format": "int64" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "queryUsedIn": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "users": { - "type": "array", - "items": { - "type": "string" - } + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "CreateRole": { - "required": ["name", "policies"], - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "extension": { - "type": "object" + "DashboardDataModelList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DashboardDataModel" + } }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "paging" : { + "$ref" : "#/components/schemas/Paging" + } + } + }, + "DashboardList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Dashboard" + } }, - "policies": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } + }, + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "CreateStorageService": { - "required": ["connection", "name", "serviceType"], - "type": "object", - "properties": { - "connection": { - "$ref": "#/components/schemas/StorageConnection" + "DashboardService" : { + "required" : [ "id", "name", "serviceType" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "description": { - "type": "string" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "displayName": { - "type": "string" + "connection" : { + "$ref" : "#/components/schemas/DashboardConnection" }, - "extension": { - "type": "object" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "deleted" : { + "type" : "boolean" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "description" : { + "type" : "string" }, - "serviceType": { - "type": "string", - "enum": ["S3", "CustomStorage"] + "displayName" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - } - } - }, - "CreateTable": { - "required": ["columns", "databaseSchema", "name"], - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "databaseSchema": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "extension" : { + "type" : "object" }, - "description": { - "type": "string" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "displayName": { - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "extension": { - "type": "object" + "href" : { + "type" : "string", + "format" : "uri" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" + "id" : { + "type" : "string", + "format" : "uuid" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "retentionPeriod": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "sourceUrl": { - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "tableConstraints": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableConstraint" + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "tablePartition": { - "$ref": "#/components/schemas/TablePartition" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "tableProfilerConfig": { - "$ref": "#/components/schemas/TableProfilerConfig" + "serviceType" : { + "type" : "string", + "enum" : [ "Superset", "Looker", "Tableau", "Redash", "Metabase", "PowerBI", "Mode", "CustomDashboard", "DomoDashboard", "QuickSight", "QlikSense", "Lightdash" ] }, - "tableType": { - "type": "string", - "enum": [ - "Regular", - "External", - "View", - "SecureView", - "MaterializedView", - "Iceberg", - "Local", - "Partitioned", - "Foreign" - ] + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "viewDefinition": { - "type": "string" + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "CreateTableProfile": { - "required": ["tableProfile"], - "type": "object", - "properties": { - "columnProfile": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ColumnProfile" + "DashboardServiceList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DashboardService" } }, - "systemProfile": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SystemProfile" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "tableProfile": { - "$ref": "#/components/schemas/TableProfile" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "CreateTag": { - "required": ["description", "name"], - "type": "object", - "properties": { - "associatedTags": { - "type": "array", - "items": { - "type": "string" + "Data" : { + "type" : "object" + }, + "DataModel" : { + "required" : [ "modelType", "sql" ], + "type" : "object", + "properties" : { + "columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Column" } }, - "classification": { - "maxLength": 64, - "minLength": 2, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "generatedAt" : { + "type" : "string", + "format" : "date-time" }, - "displayName": { - "type": "string" + "modelType" : { + "type" : "string", + "enum" : [ "DBT" ] }, - "extension": { - "type": "object" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "mutuallyExclusive": { - "type": "boolean" + "path" : { + "type" : "string" }, - "name": { - "maxLength": 64, - "minLength": 2, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "rawSql" : { + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "resourceType" : { + "type" : "string" }, - "parent": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "sql" : { + "type" : "string" }, - "provider": { - "type": "string", - "enum": ["system", "user"] - } - } - }, - "CreateTaskDetails": { - "required": ["assignees", "type"], - "type": "object", - "properties": { - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "oldValue": { - "type": "string" - }, - "suggestion": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "RequestDescription", - "UpdateDescription", - "RequestTag", - "UpdateTag", - "Generic" - ] + "upstream" : { + "type" : "array", + "items" : { + "type" : "string" + } } } }, - "CreateTeam": { - "required": ["name", "teamType"], - "type": "object", - "properties": { - "children": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" + "DataProduct" : { + "required" : [ "description", "id", "name" ], + "type" : "object", + "properties" : { + "assets" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "defaultRoles": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - }, - "description": { - "type": "string" + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "displayName": { - "type": "string" - }, - "email": { - "maxLength": 127, - "minLength": 6, - "pattern": "^\\S+@\\S+\\.\\S+$", - "type": "string" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "isJoinable": { - "type": "boolean" + "deleted" : { + "type" : "boolean" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "description" : { + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "displayName" : { + "type" : "string" }, - "parents": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "policies": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "profile": { - "$ref": "#/components/schemas/Profile" + "extension" : { + "type" : "object" }, - "teamType": { - "type": "string", - "enum": [ - "Group", - "Department", - "Division", - "BusinessUnit", - "Organization" - ] - }, - "users": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } - } - } - }, - "CreateTestCase": { - "required": ["entityLink", "name", "testDefinition", "testSuite"], - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "entityLink": { - "pattern": "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#]+>$", - "type": "string" - }, - "extension": { - "type": "object" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "parameterValues": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestCaseParameterValue" - } - }, - "testDefinition": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "testSuite": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - } - }, - "CreateTestDefinition": { - "required": ["description", "entityType", "name", "testPlatforms"], - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "entityType": { - "type": "string", - "enum": ["TABLE", "COLUMN"] - }, - "extension": { - "type": "object" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "parameterDefinition": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestCaseParameter" - } - }, - "supportedDataTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "NUMBER", - "TINYINT", - "SMALLINT", - "INT", - "BIGINT", - "BYTEINT", - "BYTES", - "FLOAT", - "DOUBLE", - "DECIMAL", - "NUMERIC", - "TIMESTAMP", - "TIMESTAMPZ", - "TIME", - "DATE", - "DATETIME", - "INTERVAL", - "STRING", - "MEDIUMTEXT", - "TEXT", - "CHAR", - "LONG", - "VARCHAR", - "BOOLEAN", - "BINARY", - "VARBINARY", - "ARRAY", - "BLOB", - "LONGBLOB", - "MEDIUMBLOB", - "MAP", - "STRUCT", - "UNION", - "SET", - "GEOGRAPHY", - "ENUM", - "JSON", - "UUID", - "VARIANT", - "GEOMETRY", - "BYTEA", - "AGGREGATEFUNCTION", - "ERROR", - "FIXED", - "RECORD", - "NULL", - "SUPER", - "HLLSKETCH", - "PG_LSN", - "PG_SNAPSHOT", - "TSQUERY", - "TXID_SNAPSHOT", - "XML", - "MACADDR", - "TSVECTOR", - "UNKNOWN", - "CIDR", - "INET", - "CLOB", - "ROWID", - "LOWCARDINALITY", - "YEAR", - "POINT", - "POLYGON", - "TUPLE", - "SPATIAL", - "TABLE" - ] - } - }, - "testPlatforms": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "OpenMetadata", - "GreatExpectations", - "DBT", - "Deequ", - "Soda", - "Other" - ] - } - } - } - }, - "CreateTestSuite": { - "required": ["name"], - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "executableEntityReference": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "extension": { - "type": "object" - }, - "name": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - } - } - }, - "CreateThread": { - "required": ["about", "from", "message"], - "type": "object", - "properties": { - "about": { - "pattern": "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#]+>$", - "type": "string" - }, - "addressedTo": { - "pattern": "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#]+>$", - "type": "string" - }, - "announcementDetails": { - "$ref": "#/components/schemas/AnnouncementDetails" - }, - "from": { - "type": "string" - }, - "message": { - "type": "string" - }, - "taskDetails": { - "$ref": "#/components/schemas/CreateTaskDetails" - }, - "type": { - "type": "string", - "enum": ["Conversation", "Task", "Announcement"] - } - } - }, - "CreateTopic": { - "required": ["name", "partitions", "service"], - "type": "object", - "properties": { - "cleanupPolicies": { - "type": "array", - "items": { - "type": "string", - "enum": ["delete", "compact"] + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "description": { - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "displayName": { - "type": "string" + "href" : { + "type" : "string", + "format" : "uri" }, - "extension": { - "type": "object" + "id" : { + "type" : "string", + "format" : "uuid" }, - "maximumMessageSize": { - "type": "integer", - "format": "int32" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "messageSchema": { - "$ref": "#/components/schemas/MessageSchema" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "minimumInSyncReplicas": { - "type": "integer", - "format": "int32" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "style" : { + "$ref" : "#/components/schemas/Style" }, - "partitions": { - "type": "integer", - "format": "int32" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "replicationFactor": { - "type": "integer", - "format": "int32" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "retentionSize": { - "type": "number", - "format": "double" + "updatedBy" : { + "type" : "string" }, - "retentionTime": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "service": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "DataProductList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DataProduct" + } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "topicConfig": { - "$ref": "#/components/schemas/TopicConfig" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "CreateType": { - "required": ["description", "name", "nameSpace", "schema"], - "type": "object", - "properties": { - "category": { - "type": "string", - "enum": ["field", "entity"] + "Database" : { + "required" : [ "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "description": { - "type": "string" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "displayName": { - "type": "string" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "databaseProfilerConfig" : { + "$ref" : "#/components/schemas/DatabaseProfilerConfig" }, - "name": { - "pattern": "^(?U)[\\w]+$", - "type": "string" + "databaseSchemas" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "nameSpace": { - "type": "string" + "default" : { + "type" : "boolean" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "deleted" : { + "type" : "boolean" }, - "schema": { - "type": "string" - } - } - }, - "CreateUser": { - "required": ["email", "name"], - "type": "object", - "properties": { - "authenticationMechanism": { - "$ref": "#/components/schemas/AuthenticationMechanism" + "description" : { + "type" : "string" }, - "botName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "confirmPassword": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "createPasswordType": { - "type": "string", - "enum": ["ADMIN_CREATE", "USER_CREATE"] + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "description": { - "type": "string" + "extension" : { + "type" : "object" }, - "displayName": { - "type": "string" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "email": { - "maxLength": 127, - "minLength": 6, - "pattern": "^\\S+@\\S+\\.\\S+$", - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "extension": { - "type": "object" + "href" : { + "type" : "string", + "format" : "uri" }, - "isAdmin": { - "type": "boolean" + "id" : { + "type" : "string", + "format" : "uuid" }, - "isBot": { - "type": "boolean" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "name": { - "maxLength": 64, - "minLength": 1, - "pattern": "^(?U)[\\w\\-.]+$", - "type": "string" + "location" : { + "$ref" : "#/components/schemas/EntityReference" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" }, - "password": { - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "profile": { - "$ref": "#/components/schemas/Profile" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "roles": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - } + "retentionPeriod" : { + "type" : "string" }, - "teams": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "timezone": { - "type": "string" - } - } - }, - "CsvImportResult": { - "type": "object", - "properties": { - "abortReason": { - "type": "string" - }, - "dryRun": { - "type": "boolean" + "service" : { + "$ref" : "#/components/schemas/EntityReference" }, - "importResultsCsv": { - "type": "string" + "serviceType" : { + "type" : "string", + "enum" : [ "BigQuery", "Mysql", "Redshift", "Snowflake", "Postgres", "Mssql", "Oracle", "Athena", "Hive", "Impala", "Presto", "Trino", "Vertica", "Glue", "MariaDB", "Druid", "Db2", "Clickhouse", "Databricks", "AzureSQL", "DynamoDB", "SingleStore", "SQLite", "DeltaLake", "Salesforce", "PinotDB", "Datalake", "DomoDatabase", "QueryLog", "CustomDatabase", "Dbt", "SapHana", "MongoDB", "Couchbase", "Greenplum" ] }, - "numberOfRowsFailed": { - "type": "integer", - "format": "int32" - }, - "numberOfRowsPassed": { - "type": "integer", - "format": "int32" - }, - "numberOfRowsProcessed": { - "type": "integer", - "format": "int32" - }, - "status": { - "type": "string", - "enum": ["success", "failure", "aborted", "partialSuccess"] - } - } - }, - "CustomMetric": { - "required": ["columnName", "expression", "name"], - "type": "object", - "properties": { - "columnName": { - "type": "string" + "sourceUrl" : { + "type" : "string" }, - "description": { - "type": "string" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "expression": { - "type": "string" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "id": { - "type": "string", - "format": "uuid" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "updatedBy" : { + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "usageSummary" : { + "$ref" : "#/components/schemas/UsageDetails" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "version" : { + "type" : "number", + "format" : "double" }, - "updatedBy": { - "type": "string" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "CustomMetricProfile": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "number", - "format": "double" + "DatabaseConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" } } }, - "CustomProperty": { - "required": ["description", "name", "propertyType"], - "type": "object", - "properties": { - "description": { - "type": "string" + "DatabaseList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Database" + } }, - "name": { - "pattern": "^(?U)[\\w]+$", - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "propertyType": { - "$ref": "#/components/schemas/EntityReference" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "DailyCount": { - "required": ["count", "date"], - "type": "object", - "properties": { - "count": { - "type": "integer", - "format": "int32" + "DatabaseProfilerConfig" : { + "type" : "object", + "properties" : { + "profileSample" : { + "type" : "number", + "format" : "double" + }, + "profileSampleType" : { + "type" : "string", + "enum" : [ "PERCENTAGE", "ROWS" ] + }, + "sampleDataCount" : { + "type" : "integer", + "format" : "int32" }, - "date": { - "type": "string" + "sampleDataStorageConfig" : { + "$ref" : "#/components/schemas/SampleDataStorageConfig" } } }, - "Dashboard": { - "required": ["id", "name", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "DatabaseSchema" : { + "required" : [ "database", "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "charts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "dashboardType": { - "type": "string", - "enum": ["Dashboard", "Report"] - }, - "dataModels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "deleted": { - "type": "boolean" + "database" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "databaseSchemaProfilerConfig" : { + "$ref" : "#/components/schemas/DatabaseSchemaProfilerConfig" }, - "description": { - "type": "string" + "deleted" : { + "type" : "boolean" }, - "displayName": { - "type": "string" + "description" : { + "type" : "string" }, - "extension": { - "type": "object" + "displayName" : { + "type" : "string" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "extension" : { + "type" : "object" }, - "href": { - "type": "string", - "format": "uri" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "id": { - "type": "string", - "format": "uuid" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "href" : { + "type" : "string", + "format" : "uri" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "id" : { + "type" : "string", + "format" : "uuid" }, - "project": { - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "serviceType": { - "type": "string", - "enum": [ - "Superset", - "Looker", - "Tableau", - "Redash", - "Metabase", - "PowerBI", - "Mode", - "CustomDashboard", - "DomoDashboard", - "QuickSight" - ] + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "sourceUrl": { - "type": "string" + "retentionPeriod" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "service" : { + "$ref" : "#/components/schemas/EntityReference" }, - "updatedBy": { - "type": "string" + "serviceType" : { + "type" : "string", + "enum" : [ "BigQuery", "Mysql", "Redshift", "Snowflake", "Postgres", "Mssql", "Oracle", "Athena", "Hive", "Impala", "Presto", "Trino", "Vertica", "Glue", "MariaDB", "Druid", "Db2", "Clickhouse", "Databricks", "AzureSQL", "DynamoDB", "SingleStore", "SQLite", "DeltaLake", "Salesforce", "PinotDB", "Datalake", "DomoDatabase", "QueryLog", "CustomDatabase", "Dbt", "SapHana", "MongoDB", "Couchbase", "Greenplum" ] }, - "usageSummary": { - "$ref": "#/components/schemas/UsageDetails" + "sourceUrl" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" - }, - "votes": { - "$ref": "#/components/schemas/Votes" - } - } - }, - "DashboardConnection": { - "type": "object", - "properties": { - "config": { - "type": "object" - } - } - }, - "DashboardDataModel": { - "required": ["columns", "dataModelType", "name"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" + "tables" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "dataModelType": { - "type": "string", - "enum": [ - "TableauDataModel", - "SupersetDataModel", - "MetabaseDataModel", - "LookMlView", - "LookMlExplore", - "PowerBIDataModel" - ] - }, - "dataModels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "deleted": { - "type": "boolean" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "description": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "displayName": { - "type": "string" + "usageSummary" : { + "$ref" : "#/components/schemas/UsageDetails" }, - "extension": { - "type": "object" + "version" : { + "type" : "number", + "format" : "double" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "DatabaseSchemaList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DatabaseSchema" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "href": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "project": { - "type": "string" - }, - "provider": { - "type": "string", - "enum": ["system", "user"] - }, - "service": { - "$ref": "#/components/schemas/EntityReference" - }, - "serviceType": { - "type": "string", - "enum": [ - "Superset", - "Looker", - "Tableau", - "Redash", - "Metabase", - "PowerBI", - "Mode", - "CustomDashboard", - "DomoDashboard", - "QuickSight" - ] - }, - "sql": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "updatedAt": { - "type": "integer", - "format": "int64" - }, - "updatedBy": { - "type": "string" - }, - "version": { - "type": "number", - "format": "double" - }, - "votes": { - "$ref": "#/components/schemas/Votes" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "DashboardDataModelList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DashboardDataModel" - } + "DatabaseSchemaProfilerConfig" : { + "type" : "object", + "properties" : { + "profileSample" : { + "type" : "number", + "format" : "double" }, - "errors": { - "type": "array", - "items": { - "type": "string" - } + "profileSampleType" : { + "type" : "string", + "enum" : [ "PERCENTAGE", "ROWS" ] }, - "paging": { - "$ref": "#/components/schemas/Paging" + "sampleDataCount" : { + "type" : "integer", + "format" : "int32" + }, + "sampleDataStorageConfig" : { + "$ref" : "#/components/schemas/SampleDataStorageConfig" } } }, - "DashboardList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Dashboard" + "DatabaseService" : { + "required" : [ "id", "name", "serviceType" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "connection" : { + "$ref" : "#/components/schemas/DatabaseConnection" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "paging": { - "$ref": "#/components/schemas/Paging" - } - } - }, - "DashboardService": { - "required": ["id", "name", "serviceType"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "deleted" : { + "type" : "boolean" }, - "connection": { - "$ref": "#/components/schemas/DashboardConnection" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "deleted": { - "type": "boolean" + "extension" : { + "type" : "object" }, - "description": { - "type": "string" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "displayName": { - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "extension": { - "type": "object" + "href" : { + "type" : "string", + "format" : "uri" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } + "id" : { + "type" : "string", + "format" : "uuid" }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "href": { - "type": "string", - "format": "uri" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "serviceType" : { + "type" : "string", + "enum" : [ "BigQuery", "Mysql", "Redshift", "Snowflake", "Postgres", "Mssql", "Oracle", "Athena", "Hive", "Impala", "Presto", "Trino", "Vertica", "Glue", "MariaDB", "Druid", "Db2", "Clickhouse", "Databricks", "AzureSQL", "DynamoDB", "SingleStore", "SQLite", "DeltaLake", "Salesforce", "PinotDB", "Datalake", "DomoDatabase", "QueryLog", "CustomDatabase", "Dbt", "SapHana", "MongoDB", "Couchbase", "Greenplum" ] }, - "serviceType": { - "type": "string", - "enum": [ - "Superset", - "Looker", - "Tableau", - "Redash", - "Metabase", - "PowerBI", - "Mode", - "CustomDashboard", - "DomoDashboard", - "QuickSight" - ] + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "testConnectionResult": { - "$ref": "#/components/schemas/TestConnectionResult" + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "DashboardServiceList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DashboardService" + "DatabaseServiceList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DatabaseService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "DataModel": { - "required": ["modelType", "sql"], - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" + "Document" : { + "required" : [ "data", "entityType", "fullyQualifiedName", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "description": { - "type": "string" + "data" : { + "$ref" : "#/components/schemas/Data" }, - "generatedAt": { - "type": "string", - "format": "date-time" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "modelType": { - "type": "string", - "enum": ["DBT"] + "deleted" : { + "type" : "boolean" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "description" : { + "type" : "string" }, - "path": { - "type": "string" + "displayName" : { + "type" : "string" }, - "rawSql": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "sql": { - "type": "string" + "entityType" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "upstream": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "Database": { - "required": ["name", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "extension" : { + "type" : "object" }, - "databaseSchemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "default": { - "type": "boolean" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" }, - "deleted": { - "type": "boolean" + "id" : { + "type" : "string", + "format" : "uuid" }, - "description": { - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "displayName": { - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "extension": { - "type": "object" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "href": { - "type": "string", - "format": "uri" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "id": { - "type": "string", - "format": "uuid" + "updatedBy" : { + "type" : "string" }, - "location": { - "$ref": "#/components/schemas/EntityReference" + "version" : { + "type" : "number", + "format" : "double" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "DocumentField" : { + "type" : "object", + "properties" : { + "ignoredValues" : { + "type" : "array", + "items" : { + "type" : "object" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "ignoredValuesWriter" : { + "$ref" : "#/components/schemas/ToXContentFragment" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "name" : { + "type" : "string" }, - "retentionPeriod": { - "type": "string" + "validValuesWriter" : { + "$ref" : "#/components/schemas/ToXContentFragment" }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "value" : { + "type" : "object" }, - "serviceType": { - "type": "string", - "enum": [ - "BigQuery", - "Mysql", - "Redshift", - "Snowflake", - "Postgres", - "Mssql", - "Oracle", - "Athena", - "Hive", - "Impala", - "Presto", - "Trino", - "Vertica", - "Glue", - "MariaDB", - "Druid", - "Db2", - "Clickhouse", - "Databricks", - "AzureSQL", - "DynamoDB", - "SingleStore", - "SQLite", - "DeltaLake", - "Salesforce", - "PinotDB", - "Datalake", - "DomoDatabase", - "QueryLog", - "CustomDatabase", - "Dbt", - "SapHana", - "MongoDB" - ] + "values" : { + "type" : "array", + "items" : { + "type" : "object" + } + } + } + }, + "DocumentList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Document" + } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "updatedAt": { - "type": "integer", - "format": "int64" - }, - "updatedBy": { - "type": "string" - }, - "usageSummary": { - "$ref": "#/components/schemas/UsageDetails" - }, - "version": { - "type": "number", - "format": "double" - }, - "votes": { - "$ref": "#/components/schemas/Votes" - } - } - }, - "DatabaseConnection": { - "type": "object", - "properties": { - "config": { - "type": "object" - } - } - }, - "DatabaseList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - }, - "paging": { - "$ref": "#/components/schemas/Paging" - } - } - }, - "DatabaseSchema": { - "required": ["database", "name", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" - }, - "database": { - "$ref": "#/components/schemas/EntityReference" - }, - "deleted": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "extension": { - "type": "object" - }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } - }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "href": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" + "paging" : { + "$ref" : "#/components/schemas/Paging" + } + } + }, + "Domain" : { + "required" : [ "description", "domainType", "id", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "deleted" : { + "type" : "boolean" }, - "retentionPeriod": { - "type": "string" + "description" : { + "type" : "string" }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "displayName" : { + "type" : "string" }, - "serviceType": { - "type": "string", - "enum": [ - "BigQuery", - "Mysql", - "Redshift", - "Snowflake", - "Postgres", - "Mssql", - "Oracle", - "Athena", - "Hive", - "Impala", - "Presto", - "Trino", - "Vertica", - "Glue", - "MariaDB", - "Druid", - "Db2", - "Clickhouse", - "Databricks", - "AzureSQL", - "DynamoDB", - "SingleStore", - "SQLite", - "DeltaLake", - "Salesforce", - "PinotDB", - "Datalake", - "DomoDatabase", - "QueryLog", - "CustomDatabase", - "Dbt", - "SapHana", - "MongoDB" - ] + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } + "domainType" : { + "type" : "string", + "enum" : [ "Source-aligned", "Consumer-aligned", "Aggregate" ] }, - "updatedAt": { - "type": "integer", - "format": "int64" - }, - "updatedBy": { - "type": "string" - }, - "usageSummary": { - "$ref": "#/components/schemas/UsageDetails" - }, - "version": { - "type": "number", - "format": "double" - }, - "votes": { - "$ref": "#/components/schemas/Votes" - } - } - }, - "DatabaseSchemaList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DatabaseSchema" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - }, - "paging": { - "$ref": "#/components/schemas/Paging" - } - } - }, - "DatabaseService": { - "required": ["id", "name", "serviceType"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" - }, - "connection": { - "$ref": "#/components/schemas/DatabaseConnection" - }, - "deleted": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "extension": { - "type": "object" - }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } - }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "href": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "extension" : { + "type" : "object" }, - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "serviceType": { - "type": "string", - "enum": [ - "BigQuery", - "Mysql", - "Redshift", - "Snowflake", - "Postgres", - "Mssql", - "Oracle", - "Athena", - "Hive", - "Impala", - "Presto", - "Trino", - "Vertica", - "Glue", - "MariaDB", - "Druid", - "Db2", - "Clickhouse", - "Databricks", - "AzureSQL", - "DynamoDB", - "SingleStore", - "SQLite", - "DeltaLake", - "Salesforce", - "PinotDB", - "Datalake", - "DomoDatabase", - "QueryLog", - "CustomDatabase", - "Dbt", - "SapHana", - "MongoDB" - ] + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "parent" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "testConnectionResult": { - "$ref": "#/components/schemas/TestConnectionResult" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "DatabaseServiceList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DatabaseService" + "DomainList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Domain" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "DocumentField": { - "type": "object", - "properties": { - "ignoredValues": { - "type": "array", - "items": { - "type": "object" - } - }, - "ignoredValuesWriter": { - "$ref": "#/components/schemas/ToXContentFragment" + "Edge" : { + "required" : [ "fromEntity", "toEntity" ], + "type" : "object", + "properties" : { + "description" : { + "type" : "string" }, - "name": { - "type": "string" + "fromEntity" : { + "type" : "string", + "format" : "uuid" }, - "validValuesWriter": { - "$ref": "#/components/schemas/ToXContentFragment" + "lineageDetails" : { + "$ref" : "#/components/schemas/LineageDetails" }, - "value": { - "type": "object" - }, - "values": { - "type": "array", - "items": { - "type": "object" - } + "toEntity" : { + "type" : "string", + "format" : "uuid" } } }, - "Edge": { - "required": ["fromEntity", "toEntity"], - "type": "object", - "properties": { - "description": { - "type": "string" + "ElasticsSearch" : { + "required" : [ "type" ], + "type" : "object", + "properties" : { + "config" : { + "$ref" : "#/components/schemas/ComponentConfig" }, - "fromEntity": { - "type": "string", - "format": "uuid" - }, - "lineageDetails": { - "$ref": "#/components/schemas/LineageDetails" - }, - "toEntity": { - "type": "string", - "format": "uuid" + "type" : { + "type" : "string" } } }, - "EmailRequest": { - "required": ["email"], - "type": "object", - "properties": { - "email": { - "maxLength": 127, - "minLength": 6, - "pattern": "^\\S+@\\S+\\.\\S+$", - "type": "string" + "EmailRequest" : { + "required" : [ "email" ], + "type" : "object", + "properties" : { + "email" : { + "maxLength" : 127, + "minLength" : 6, + "pattern" : "^[\\S.!#$%&’*+/=?^_`{|}~-]+@\\S+\\.\\S+$", + "type" : "string" } } }, - "EntitiesEdge": { - "required": ["fromEntity", "toEntity"], - "type": "object", - "properties": { - "description": { - "type": "string" + "EntitiesEdge" : { + "required" : [ "fromEntity", "toEntity" ], + "type" : "object", + "properties" : { + "description" : { + "type" : "string" }, - "fromEntity": { - "$ref": "#/components/schemas/EntityReference" + "fromEntity" : { + "$ref" : "#/components/schemas/EntityReference" }, - "lineageDetails": { - "$ref": "#/components/schemas/LineageDetails" + "lineageDetails" : { + "$ref" : "#/components/schemas/LineageDetails" }, - "toEntity": { - "$ref": "#/components/schemas/EntityReference" + "toEntity" : { + "$ref" : "#/components/schemas/EntityReference" } } }, - "EntityHistory": { - "required": ["entityType", "versions"], - "type": "object", - "properties": { - "entityType": { - "type": "string" + "EntityHistory" : { + "required" : [ "entityType", "versions" ], + "type" : "object", + "properties" : { + "entityType" : { + "type" : "string" }, - "versions": { - "type": "array", - "items": { - "type": "object" + "versions" : { + "type" : "array", + "items" : { + "type" : "object" } } } }, - "EntityLineage": { - "required": ["entity"], - "type": "object", - "properties": { - "downstreamEdges": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Edge" + "EntityLineage" : { + "required" : [ "entity" ], + "type" : "object", + "properties" : { + "downstreamEdges" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Edge" } }, - "entity": { - "$ref": "#/components/schemas/EntityReference" + "entity" : { + "$ref" : "#/components/schemas/EntityReference" }, - "nodes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "nodes" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "upstreamEdges": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Edge" + "upstreamEdges" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Edge" } } } }, - "EntityLinkThreadCount": { - "required": ["count", "entityLink"], - "type": "object", - "properties": { - "count": { - "type": "integer", - "format": "int32" + "EntityLinkThreadCount" : { + "required" : [ "count", "entityLink" ], + "type" : "object", + "properties" : { + "count" : { + "type" : "integer", + "format" : "int32" }, - "entityLink": { - "pattern": "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#]+>$", - "type": "string" + "entityLink" : { + "pattern" : "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#%]+>$", + "type" : "string" } } }, - "EntityReference": { - "required": ["id", "type"], - "type": "object", - "properties": { - "deleted": { - "type": "boolean" + "EntityReference" : { + "required" : [ "id", "type" ], + "type" : "object", + "properties" : { + "deleted" : { + "type" : "boolean" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "fullyQualifiedName": { - "type": "string" + "fullyQualifiedName" : { + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "name": { - "type": "string" + "name" : { + "type" : "string" }, - "type": { - "type": "string" + "type" : { + "type" : "string" } } }, - "EntityUsage": { - "required": ["entity", "usage"], - "type": "object", - "properties": { - "entity": { - "$ref": "#/components/schemas/EntityReference" + "EntityUsage" : { + "required" : [ "entity", "usage" ], + "type" : "object", + "properties" : { + "entity" : { + "$ref" : "#/components/schemas/EntityReference" }, - "usage": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UsageDetails" + "usage" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/UsageDetails" } } } }, - "EventFilterRule": { - "required": ["condition", "effect"], - "type": "object", - "properties": { - "condition": { - "type": "string" + "EventFilterRule" : { + "required" : [ "condition", "effect" ], + "type" : "object", + "properties" : { + "condition" : { + "type" : "string" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "effect": { - "type": "string", - "enum": ["include", "exclude"] + "effect" : { + "type" : "string", + "enum" : [ "include", "exclude" ] }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "name": { - "type": "string" + "name" : { + "type" : "string" } } }, - "EventList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChangeEvent" + "EventList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ChangeEvent" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "EventSubscription": { - "required": ["alertType", "id", "name", "subscriptionType"], - "type": "object", - "properties": { - "alertType": { - "type": "string", - "enum": [ - "ChangeEvent", - "DataInsightReport", - "Task/Conversation/Announcement" - ] + "EventSubscription" : { + "required" : [ "alertType", "id", "name", "subscriptionType" ], + "type" : "object", + "properties" : { + "alertType" : { + "type" : "string", + "enum" : [ "ChangeEvent", "DataInsightReport", "Task/Conversation/Announcement" ] + }, + "batchSize" : { + "type" : "integer", + "format" : "int32" + }, + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "batchSize": { - "type": "integer", - "format": "int32" + "deleted" : { + "type" : "boolean" }, - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "description" : { + "type" : "string" }, - "deleted": { - "type": "boolean" + "displayName" : { + "type" : "string" }, - "description": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "displayName": { - "type": "string" + "enabled" : { + "type" : "boolean" }, - "enabled": { - "type": "boolean" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "filteringRules": { - "$ref": "#/components/schemas/FilteringRules" + "filteringRules" : { + "$ref" : "#/components/schemas/FilteringRules" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "href": { - "type": "string", - "format": "uri" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "readTimeout" : { + "type" : "integer", + "format" : "int32" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "readTimeout": { - "type": "integer", - "format": "int32" + "statusDetails" : { + "$ref" : "#/components/schemas/SubscriptionStatus" }, - "statusDetails": { - "$ref": "#/components/schemas/SubscriptionStatus" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "subscriptionConfig": { - "type": "object" + "subscriptionConfig" : { + "type" : "object" }, - "subscriptionType": { - "type": "string", - "enum": [ - "GenericWebhook", - "SlackWebhook", - "MsTeamsWebhook", - "GChatWebhook", - "Email", - "ActivityFeed", - "DataInsight" - ] + "subscriptionType" : { + "type" : "string", + "enum" : [ "GenericWebhook", "SlackWebhook", "MsTeamsWebhook", "GChatWebhook", "Email", "ActivityFeed", "DataInsight" ] }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "timeout": { - "type": "integer", - "format": "int32" - }, - "trigger": { - "$ref": "#/components/schemas/TriggerConfig" + "timeout" : { + "type" : "integer", + "format" : "int32" + }, + "trigger" : { + "$ref" : "#/components/schemas/TriggerConfig" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "EventSubscriptionList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EventSubscription" + "EventSubscriptionList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EventSubscription" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "Explanation": { - "type": "object", - "properties": { - "description": { - "type": "string" + "Explanation" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" }, - "details": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Explanation" + "details" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Explanation" } }, - "match": { - "type": "boolean" + "match" : { + "type" : "boolean" }, - "value": { - "type": "number" + "value" : { + "type" : "number" } } }, - "Field": { - "required": ["dataType", "name"], - "type": "object", - "properties": { - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Field" + "ExtraHeaders" : { + "type" : "object" + }, + "FailureContext" : { + "type" : "object" + }, + "Field" : { + "required" : [ "dataType", "name" ], + "type" : "object", + "properties" : { + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Field" } }, - "dataType": { - "type": "string", - "enum": [ - "RECORD", - "NULL", - "BOOLEAN", - "INT", - "LONG", - "BYTES", - "FLOAT", - "DOUBLE", - "TIMESTAMP", - "TIMESTAMPZ", - "TIME", - "DATE", - "STRING", - "ARRAY", - "MAP", - "ENUM", - "UNION", - "FIXED", - "ERROR", - "UNKNOWN" - ] + "dataType" : { + "type" : "string", + "enum" : [ "RECORD", "NULL", "BOOLEAN", "INT", "LONG", "BYTES", "FLOAT", "DOUBLE", "TIMESTAMP", "TIMESTAMPZ", "TIME", "DATE", "STRING", "ARRAY", "MAP", "ENUM", "UNION", "FIXED", "ERROR", "UNKNOWN" ] }, - "dataTypeDisplay": { - "type": "string" + "dataTypeDisplay" : { + "type" : "string" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "name": { - "maxLength": 128, - "minLength": 1, - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } }, - "FieldChange": { - "type": "object", - "properties": { - "name": { - "type": "string" + "FieldChange" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" }, - "newValue": { - "type": "object" + "newValue" : { + "type" : "object" }, - "oldValue": { - "type": "object" + "oldValue" : { + "type" : "object" } } }, - "FieldComparatorSource": { - "type": "object" + "FieldComparatorSource" : { + "type" : "object" }, - "FilteringRules": { - "required": ["resources"], - "type": "object", - "properties": { - "resources": { - "type": "array", - "items": { - "type": "string" + "FilteringRules" : { + "required" : [ "resources" ], + "type" : "object", + "properties" : { + "resources" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "rules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EventFilterRule" + "rules" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EventFilterRule" } } } }, - "Function": { - "type": "object", - "properties": { - "description": { - "type": "string" + "Function" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" }, - "examples": { - "type": "array", - "items": { - "type": "object" + "examples" : { + "type" : "array", + "items" : { + "type" : "object" } }, - "input": { - "type": "string" + "input" : { + "type" : "string" }, - "name": { - "type": "string" + "name" : { + "type" : "string" }, - "paramAdditionalContext": { - "$ref": "#/components/schemas/ParamAdditionalContext" + "paramAdditionalContext" : { + "$ref" : "#/components/schemas/ParamAdditionalContext" }, - "parameterInputType": { - "type": "string", - "enum": [ - "NotRequired", - "AllIndexElasticSearch", - "SpecificIndexElasticSearch", - "ReadFromParamContext" - ] + "parameterInputType" : { + "type" : "string", + "enum" : [ "NotRequired", "AllIndexElasticSearch", "SpecificIndexElasticSearch", "ReadFromParamContext" ] } } }, - "GenerateTokenRequest": { - "required": ["JWTTokenExpiry"], - "type": "object", - "properties": { - "JWTTokenExpiry": { - "type": "string", - "enum": ["OneHour", "1", "7", "30", "60", "90", "Unlimited"] + "GenerateTokenRequest" : { + "required" : [ "JWTTokenExpiry" ], + "type" : "object", + "properties" : { + "JWTTokenExpiry" : { + "type" : "string", + "enum" : [ "OneHour", "1", "7", "30", "60", "90", "Unlimited" ] } } }, - "Glossary": { - "required": ["description", "id", "name"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Glossary" : { + "required" : [ "description", "id", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "deleted": { - "type": "boolean" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "disabled": { - "type": "boolean" + "disabled" : { + "type" : "boolean" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "extension": { - "type": "object" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" }, - "href": { - "type": "string", - "format": "uri" + "id" : { + "type" : "string", + "format" : "uuid" }, - "id": { - "type": "string", - "format": "uuid" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "mutuallyExclusive": { - "type": "boolean" + "mutuallyExclusive" : { + "type" : "boolean" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "reviewers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "termCount": { - "type": "integer", - "format": "int32" + "termCount" : { + "type" : "integer", + "format" : "int32" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "usageCount": { - "type": "integer", - "format": "int32" + "usageCount" : { + "type" : "integer", + "format" : "int32" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "GlossaryList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Glossary" + "GlossaryList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Glossary" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "GlossaryTerm": { - "required": ["description", "glossary", "id", "name"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "GlossaryTerm" : { + "required" : [ "description", "glossary", "id", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "deleted": { - "type": "boolean" + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "disabled" : { + "type" : "boolean" }, - "disabled": { - "type": "boolean" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "extension": { - "type": "object" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "glossary": { - "$ref": "#/components/schemas/EntityReference" + "glossary" : { + "$ref" : "#/components/schemas/EntityReference" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "mutuallyExclusive": { - "type": "boolean" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "mutuallyExclusive" : { + "type" : "boolean" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "parent": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "parent" : { + "$ref" : "#/components/schemas/EntityReference" }, - "references": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TermReference" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "references" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TermReference" } }, - "relatedTerms": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "relatedTerms" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "reviewers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "status": { - "type": "string", - "enum": ["Draft", "Approved", "Deprecated"] + "status" : { + "type" : "string", + "enum" : [ "Draft", "Approved", "Deprecated", "Rejected" ] + }, + "style" : { + "$ref" : "#/components/schemas/Style" }, - "synonyms": { - "type": "array", - "items": { - "type": "string" + "synonyms" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "usageCount": { - "type": "integer", - "format": "int32" + "usageCount" : { + "type" : "integer", + "format" : "int32" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "GlossaryTermList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GlossaryTerm" + "GlossaryTermList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/GlossaryTerm" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "HighlightField": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "HighlightField" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" }, - "fragments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Text" + "fragments" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Text" } }, - "name": { - "type": "string" + "name" : { + "type" : "string" } } }, - "Histogram": { - "type": "object", - "properties": { - "boundaries": { - "type": "array", - "items": { - "type": "object" + "Histogram" : { + "type" : "object", + "properties" : { + "boundaries" : { + "type" : "array", + "items" : { + "type" : "object" } }, - "frequencies": { - "type": "array", - "items": { - "type": "object" + "frequencies" : { + "type" : "array", + "items" : { + "type" : "object" } } } }, - "ImageList": { - "type": "object", - "properties": { - "image": { - "type": "string", - "format": "uri" + "ImageList" : { + "type" : "object", + "properties" : { + "image" : { + "type" : "string", + "format" : "uri" }, - "image192": { - "type": "string", - "format": "uri" + "image192" : { + "type" : "string", + "format" : "uri" }, - "image24": { - "type": "string", - "format": "uri" + "image24" : { + "type" : "string", + "format" : "uri" }, - "image32": { - "type": "string", - "format": "uri" + "image32" : { + "type" : "string", + "format" : "uri" }, - "image48": { - "type": "string", - "format": "uri" + "image48" : { + "type" : "string", + "format" : "uri" }, - "image512": { - "type": "string", - "format": "uri" + "image512" : { + "type" : "string", + "format" : "uri" }, - "image72": { - "type": "string", - "format": "uri" + "image72" : { + "type" : "string", + "format" : "uri" } } }, - "Index": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "Index" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" }, - "name": { - "type": "string" + "name" : { + "type" : "string" }, - "uuid": { - "type": "string" + "uuid" : { + "type" : "string" } } }, - "IndexSorter": { - "type": "object", - "properties": { - "providerName": { - "type": "string" + "IndexSorter" : { + "type" : "object", + "properties" : { + "providerName" : { + "type" : "string" } } }, - "JWTAuthMechanism": { - "required": ["JWTToken", "JWTTokenExpiry"], - "type": "object", - "properties": { - "JWTToken": { - "type": "string" + "JWTAuthMechanism" : { + "required" : [ "JWTToken", "JWTTokenExpiry" ], + "type" : "object", + "properties" : { + "JWTToken" : { + "type" : "string" }, - "JWTTokenExpiresAt": { - "type": "integer", - "format": "int64" + "JWTTokenExpiresAt" : { + "type" : "integer", + "format" : "int64" }, - "JWTTokenExpiry": { - "type": "string", - "enum": ["OneHour", "1", "7", "30", "60", "90", "Unlimited"] + "JWTTokenExpiry" : { + "type" : "string", + "enum" : [ "OneHour", "1", "7", "30", "60", "90", "Unlimited" ] } } }, - "JoinedWith": { - "required": ["fullyQualifiedName", "joinCount"], - "type": "object", - "properties": { - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "JoinedWith" : { + "required" : [ "fullyQualifiedName", "joinCount" ], + "type" : "object", + "properties" : { + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "joinCount": { - "type": "integer", - "format": "int32" + "joinCount" : { + "type" : "integer", + "format" : "int32" } } }, - "JwtResponse": { - "type": "object", - "properties": { - "accessToken": { - "type": "string" + "JwtResponse" : { + "type" : "object", + "properties" : { + "accessToken" : { + "type" : "string" }, - "expiryDuration": { - "type": "integer", - "format": "int64" + "expiryDuration" : { + "type" : "integer", + "format" : "int64" }, - "refreshToken": { - "type": "string" + "refreshToken" : { + "type" : "string" }, - "tokenType": { - "type": "string" + "tokenType" : { + "type" : "string" } } }, - "LineageDetails": { - "type": "object", - "properties": { - "columnsLineage": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ColumnLineage" + "LifeCycle" : { + "type" : "object", + "properties" : { + "accessed" : { + "$ref" : "#/components/schemas/AccessDetails" + }, + "created" : { + "$ref" : "#/components/schemas/AccessDetails" + }, + "updated" : { + "$ref" : "#/components/schemas/AccessDetails" + } + } + }, + "LineageDetails" : { + "type" : "object", + "properties" : { + "columnsLineage" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ColumnLineage" } }, - "description": { - "type": "string" + "description" : { + "type" : "string" + }, + "pipeline" : { + "$ref" : "#/components/schemas/EntityReference" }, - "pipeline": { - "$ref": "#/components/schemas/EntityReference" + "source" : { + "type" : "string", + "enum" : [ "Manual", "ViewLineage", "QueryLineage", "PipelineLineage", "DashboardLineage", "DbtLineage" ] }, - "sqlQuery": { - "type": "string" + "sqlQuery" : { + "type" : "string" } } }, - "LoginRequest": { - "required": ["email", "password"], - "type": "object", - "properties": { - "email": { - "type": "string" + "LoginRequest" : { + "required" : [ "email", "password" ], + "type" : "object", + "properties" : { + "email" : { + "type" : "string" }, - "password": { - "type": "string" + "password" : { + "type" : "string" } } }, - "LogoutRequest": { - "required": ["token"], - "type": "object", - "properties": { - "logoutTime": { - "type": "string", - "format": "date-time" + "LogoutRequest" : { + "required" : [ "token" ], + "type" : "object", + "properties" : { + "logoutTime" : { + "type" : "string", + "format" : "date-time" }, - "refreshToken": { - "type": "string" + "refreshToken" : { + "type" : "string" }, - "token": { - "type": "string" + "token" : { + "type" : "string" }, - "username": { - "type": "string" + "username" : { + "type" : "string" } } }, - "MessageSchema": { - "type": "object", - "properties": { - "schemaFields": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Field" + "MessageSchema" : { + "type" : "object", + "properties" : { + "schemaFields" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Field" } }, - "schemaText": { - "type": "string" + "schemaText" : { + "type" : "string" }, - "schemaType": { - "type": "string", - "enum": ["Avro", "Protobuf", "JSON", "Other", "None"] + "schemaType" : { + "type" : "string", + "enum" : [ "Avro", "Protobuf", "JSON", "Other", "None" ] } } }, - "MessagingConnection": { - "type": "object", - "properties": { - "config": { - "type": "object" + "MessagingConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" } } }, - "MessagingService": { - "required": ["id", "name", "serviceType"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "MessagingService" : { + "required" : [ "id", "name", "serviceType" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "connection": { - "$ref": "#/components/schemas/MessagingConnection" + "connection" : { + "$ref" : "#/components/schemas/MessagingConnection" }, - "deleted": { - "type": "boolean" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" }, - "description": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "displayName": { - "type": "string" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "href": { - "type": "string", - "format": "uri" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "serviceType" : { + "type" : "string", + "enum" : [ "Kafka", "Redpanda", "Kinesis", "CustomMessaging" ] }, - "serviceType": { - "type": "string", - "enum": ["Kafka", "Redpanda", "Kinesis", "CustomMessaging"] + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "testConnectionResult": { - "$ref": "#/components/schemas/TestConnectionResult" + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "MessagingServiceList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessagingService" + "MessagingServiceList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MessagingService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "MetadataConnection": { - "type": "object", - "properties": { - "config": { - "type": "object" + "MetadataConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" } } }, - "MetadataService": { - "required": ["id", "name", "serviceType"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "MetadataService" : { + "required" : [ "id", "name", "serviceType" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "connection" : { + "$ref" : "#/components/schemas/MetadataConnection" }, - "connection": { - "$ref": "#/components/schemas/MetadataConnection" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" }, - "deleted": { - "type": "boolean" + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "serviceType" : { + "type" : "string", + "enum" : [ "Amundsen", "MetadataES", "OpenMetadata", "Atlas" ] }, - "serviceType": { - "type": "string", - "enum": ["Amundsen", "MetadataES", "OpenMetadata", "Atlas"] + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "testConnectionResult": { - "$ref": "#/components/schemas/TestConnectionResult" + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "MetadataServiceList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataService" + "MetadataServiceList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MetadataService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "Metrics": { - "required": ["id", "name", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Metrics" : { + "required" : [ "id", "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "deleted": { - "type": "boolean" + "deleted" : { + "type" : "boolean" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "extension": { - "type": "object" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "extension" : { + "type" : "object" }, - "href": { - "type": "string", - "format": "uri" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" }, - "id": { - "type": "string", - "format": "uuid" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "service" : { + "$ref" : "#/components/schemas/EntityReference" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "usageSummary": { - "$ref": "#/components/schemas/UsageDetails" + "usageSummary" : { + "$ref" : "#/components/schemas/UsageDetails" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "MetricsList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metrics" + "MetricsList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Metrics" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "MlFeature": { - "type": "object", - "properties": { - "dataType": { - "type": "string", - "enum": ["numerical", "categorical"] + "MlFeature" : { + "type" : "object", + "properties" : { + "dataType" : { + "type" : "string", + "enum" : [ "numerical", "categorical" ] + }, + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "featureAlgorithm" : { + "type" : "string" }, - "featureAlgorithm": { - "type": "string" + "featureSources" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlFeatureSource" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "featureSources": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlFeatureSource" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } + } + } + }, + "MlFeatureSource" : { + "type" : "object", + "properties" : { + "dataSource" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "dataType" : { + "type" : "string", + "enum" : [ "integer", "number", "string", "array", "date", "timestamp", "object", "boolean" ] + }, + "description" : { + "type" : "string" }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } } } }, - "MlFeatureSource": { - "type": "object", - "properties": { - "dataSource": { - "$ref": "#/components/schemas/EntityReference" + "MlHyperParameter" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "value" : { + "type" : "string" + } + } + }, + "MlModel" : { + "required" : [ "algorithm", "id", "name", "service" ], + "type" : "object", + "properties" : { + "algorithm" : { + "type" : "string" + }, + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "dataType": { - "type": "string", - "enum": [ - "integer", - "number", - "string", - "array", - "date", - "timestamp", - "object", - "boolean" - ] + "dashboard" : { + "$ref" : "#/components/schemas/EntityReference" }, - "description": { - "type": "string" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "mlFeatures" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlFeature" + } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "mlHyperParameters" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlHyperParameter" + } + }, + "mlStore" : { + "$ref" : "#/components/schemas/MlStore" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "server" : { + "type" : "string", + "format" : "uri" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "service" : { + "$ref" : "#/components/schemas/EntityReference" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "serviceType" : { + "type" : "string", + "enum" : [ "Mlflow", "Sklearn", "CustomMlModel", "SageMaker" ] + }, + "sourceUrl" : { + "type" : "string" + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } + }, + "target" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "usageSummary" : { + "$ref" : "#/components/schemas/UsageDetails" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "MlModelConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" } } }, - "MlHyperParameter": { - "type": "object", - "properties": { - "description": { - "type": "string" + "MlModelList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlModel" + } }, - "name": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "value": { - "type": "string" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "MlModel": { - "required": ["algorithm", "id", "name", "service"], - "type": "object", - "properties": { - "algorithm": { - "type": "string" + "MlModelService" : { + "required" : [ "id", "name", "serviceType" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "connection" : { + "$ref" : "#/components/schemas/MlModelConnection" }, - "dashboard": { - "$ref": "#/components/schemas/EntityReference" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" }, - "deleted": { - "type": "boolean" + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "mlFeatures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlFeature" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "mlHyperParameters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlHyperParameter" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "mlStore": { - "$ref": "#/components/schemas/MlStore" + "serviceType" : { + "type" : "string", + "enum" : [ "Mlflow", "Sklearn", "CustomMlModel", "SageMaker" ] }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "server": { - "type": "string", - "format": "uri" + "updatedBy" : { + "type" : "string" }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "version" : { + "type" : "number", + "format" : "double" }, - "serviceType": { - "type": "string", - "enum": ["Mlflow", "Sklearn", "CustomMlModel", "SageMaker"] + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "MlModelServiceList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlModelService" + } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "target": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "paging" : { + "$ref" : "#/components/schemas/Paging" + } + } + }, + "MlStore" : { + "type" : "object", + "properties" : { + "imageRepository" : { + "type" : "string", + "format" : "uri" + }, + "storage" : { + "type" : "string", + "format" : "uri" + } + } + }, + "NestedIdentity" : { + "type" : "object", + "properties" : { + "child" : { + "$ref" : "#/components/schemas/NestedIdentity" + }, + "field" : { + "$ref" : "#/components/schemas/Text" + }, + "fragment" : { + "type" : "boolean" + }, + "offset" : { + "type" : "integer", + "format" : "int32" + } + } + }, + "OpenMetadataConnection" : { + "required" : [ "hostPort" ], + "type" : "object", + "properties" : { + "apiVersion" : { + "type" : "string" + }, + "authProvider" : { + "type" : "string", + "enum" : [ "no-auth", "basic", "azure", "google", "okta", "auth0", "aws-cognito", "custom-oidc", "ldap", "saml", "openmetadata" ] + }, + "clusterName" : { + "type" : "string" + }, + "elasticsSearch" : { + "$ref" : "#/components/schemas/ElasticsSearch" + }, + "enableVersionValidation" : { + "type" : "boolean" + }, + "extraHeaders" : { + "$ref" : "#/components/schemas/ExtraHeaders" + }, + "forceEntityOverwriting" : { + "type" : "boolean" + }, + "hostPort" : { + "type" : "string" + }, + "includeDashboards" : { + "type" : "boolean" + }, + "includeDatabaseServices" : { + "type" : "boolean" + }, + "includeGlossaryTerms" : { + "type" : "boolean" + }, + "includeMessagingServices" : { + "type" : "boolean" + }, + "includeMlModels" : { + "type" : "boolean" + }, + "includePipelineServices" : { + "type" : "boolean" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "includePipelines" : { + "type" : "boolean" }, - "updatedBy": { - "type": "string" + "includePolicy" : { + "type" : "boolean" }, - "usageSummary": { - "$ref": "#/components/schemas/UsageDetails" + "includeTables" : { + "type" : "boolean" + }, + "includeTags" : { + "type" : "boolean" + }, + "includeTeams" : { + "type" : "boolean" + }, + "includeTopics" : { + "type" : "boolean" + }, + "includeUsers" : { + "type" : "boolean" + }, + "limitRecords" : { + "type" : "integer", + "format" : "int32" + }, + "secretsManagerLoader" : { + "type" : "string", + "enum" : [ "noop", "airflow", "env" ] + }, + "secretsManagerProvider" : { + "type" : "string", + "enum" : [ "noop", "managed-aws", "aws", "managed-aws-ssm", "aws-ssm", "in-memory" ] + }, + "securityConfig" : { + "type" : "object" + }, + "sslConfig" : { + "type" : "object" + }, + "storeServiceConnection" : { + "type" : "boolean" + }, + "supportsDataInsightExtraction" : { + "type" : "boolean" + }, + "supportsElasticSearchReindexingExtraction" : { + "type" : "boolean" + }, + "type" : { + "type" : "string", + "enum" : [ "OpenMetadata" ] + }, + "verifySSL" : { + "type" : "string", + "enum" : [ "no-ssl", "ignore", "validate" ] + } + } + }, + "OpenMetadataServerVersion" : { + "type" : "object", + "properties" : { + "revision" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "timestamp" : { + "type" : "integer", + "format" : "int64" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "version" : { + "type" : "string" } } }, - "MlModelConnection": { - "type": "object", - "properties": { - "config": { - "type": "object" + "Paging" : { + "required" : [ "total" ], + "type" : "object", + "properties" : { + "after" : { + "type" : "string" + }, + "before" : { + "type" : "string" + }, + "offset" : { + "type" : "integer", + "format" : "int32" + }, + "total" : { + "type" : "integer", + "format" : "int32" } } }, - "MlModelList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlModel" + "ParamAdditionalContext" : { + "type" : "object", + "properties" : { + "data" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" } + } + } + }, + "PartitionProfilerConfig" : { + "type" : "object", + "properties" : { + "enablePartitioning" : { + "type" : "boolean" + }, + "partitionColumnName" : { + "type" : "string" }, - "errors": { - "type": "array", - "items": { - "type": "string" + "partitionIntegerRangeEnd" : { + "type" : "integer", + "format" : "int32" + }, + "partitionIntegerRangeStart" : { + "type" : "integer", + "format" : "int32" + }, + "partitionInterval" : { + "type" : "integer", + "format" : "int32" + }, + "partitionIntervalType" : { + "type" : "string", + "enum" : [ "TIME-UNIT", "INTEGER-RANGE", "INGESTION-TIME", "COLUMN-VALUE" ] + }, + "partitionIntervalUnit" : { + "type" : "string", + "enum" : [ "YEAR", "MONTH", "DAY", "HOUR" ] + }, + "partitionValues" : { + "type" : "array", + "items" : { + "type" : "object" } + } + } + }, + "PasswordResetRequest" : { + "required" : [ "username" ], + "type" : "object", + "properties" : { + "confirmPassword" : { + "maxLength" : 16, + "minLength" : 8, + "type" : "string" }, - "paging": { - "$ref": "#/components/schemas/Paging" + "password" : { + "maxLength" : 16, + "minLength" : 8, + "type" : "string" + }, + "token" : { + "type" : "string" + }, + "username" : { + "type" : "string" } } }, - "MlModelService": { - "required": ["id", "name", "serviceType"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Permission" : { + "type" : "object", + "properties" : { + "access" : { + "type" : "string", + "enum" : [ "deny", "allow", "conditionalDeny", "conditionalAllow", "notAllow" ] }, - "connection": { - "$ref": "#/components/schemas/MlModelConnection" + "operation" : { + "type" : "string", + "enum" : [ "All", "Create", "Delete", "ViewAll", "ViewBasic", "ViewUsage", "ViewTests", "ViewQueries", "ViewDataProfile", "ViewSampleData", "EditAll", "EditCustomFields", "EditDataProfile", "EditDescription", "EditDisplayName", "EditLineage", "EditPolicy", "EditOwner", "EditQueries", "EditReviewers", "EditRole", "EditSampleData", "EditStatus", "EditTags", "EditTeams", "EditTier", "EditTests", "EditUsage", "EditUsers", "EditLifeCycle", "EditKnowledgePanel", "EditPage" ] }, - "deleted": { - "type": "boolean" + "policy" : { + "type" : "string" }, - "description": { - "type": "string" + "role" : { + "type" : "string" }, - "displayName": { - "type": "string" + "rule" : { + "$ref" : "#/components/schemas/Rule" + } + } + }, + "Persona" : { + "required" : [ "id", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "extension": { - "type": "object" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "deleted" : { + "type" : "boolean" }, - "href": { - "type": "string", - "format": "uri" + "description" : { + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "displayName" : { + "type" : "string" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "extension" : { + "type" : "object" }, - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "serviceType": { - "type": "string", - "enum": ["Mlflow", "Sklearn", "CustomMlModel", "SageMaker"] + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "testConnectionResult": { - "$ref": "#/components/schemas/TestConnectionResult" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedBy" : { + "type" : "string" }, - "updatedBy": { - "type": "string" + "users" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "MlModelServiceList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlModelService" + "PersonaList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Persona" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "MlStore": { - "type": "object", - "properties": { - "imageRepository": { - "type": "string", - "format": "uri" + "PersonalAccessToken" : { + "required" : [ "expiryDate", "token", "userId" ], + "type" : "object", + "properties" : { + "expiryDate" : { + "type" : "integer", + "format" : "int64" }, - "storage": { - "type": "string", - "format": "uri" - } - } - }, - "NestedIdentity": { - "type": "object", - "properties": { - "child": { - "$ref": "#/components/schemas/NestedIdentity" + "jwtToken" : { + "type" : "string" }, - "field": { - "$ref": "#/components/schemas/Text" + "token" : { + "type" : "string", + "format" : "uuid" }, - "fragment": { - "type": "boolean" + "tokenName" : { + "type" : "string" }, - "offset": { - "type": "integer", - "format": "int32" + "tokenType" : { + "type" : "string", + "enum" : [ "REFRESH_TOKEN", "EMAIL_VERIFICATION", "PASSWORD_RESET", "PERSONAL_ACCESS_TOKEN" ] + }, + "userId" : { + "type" : "string", + "format" : "uuid" } } }, - "OpenMetadataServerVersion": { - "type": "object", - "properties": { - "revision": { - "type": "string" + "PersonalAccessTokenList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PersonalAccessToken" + } }, - "timestamp": { - "type": "integer", - "format": "int64" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "version": { - "type": "string" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "Paging": { - "required": ["total"], - "type": "object", - "properties": { - "after": { - "type": "string" + "Pipeline" : { + "required" : [ "id", "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "before": { - "type": "string" + "concurrency" : { + "type" : "integer", + "format" : "int32" }, - "total": { - "type": "integer", - "format": "int32" - } - } - }, - "ParamAdditionalContext": { - "type": "object", - "properties": { - "data": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - } - }, - "PartitionProfilerConfig": { - "type": "object", - "properties": { - "enablePartitioning": { - "type": "boolean" - }, - "partitionColumnName": { - "type": "string" - }, - "partitionIntegerRangeEnd": { - "type": "integer", - "format": "int32" }, - "partitionIntegerRangeStart": { - "type": "integer", - "format": "int32" + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" }, - "partitionInterval": { - "type": "integer", - "format": "int32" + "displayName" : { + "type" : "string" }, - "partitionIntervalType": { - "type": "string", - "enum": [ - "TIME-UNIT", - "INTEGER-RANGE", - "INGESTION-TIME", - "COLUMN-VALUE" - ] - }, - "partitionIntervalUnit": { - "type": "string", - "enum": ["YEAR", "MONTH", "DAY", "HOUR"] - }, - "partitionValues": { - "type": "array", - "items": { - "type": "object" - } - } - } - }, - "PasswordResetRequest": { - "required": ["username"], - "type": "object", - "properties": { - "confirmPassword": { - "maxLength": 16, - "minLength": 8, - "type": "string" - }, - "password": { - "maxLength": 16, - "minLength": 8, - "type": "string" - }, - "token": { - "type": "string" - }, - "username": { - "type": "string" - } - } - }, - "Permission": { - "type": "object", - "properties": { - "access": { - "type": "string", - "enum": [ - "deny", - "allow", - "conditionalDeny", - "conditionalAllow", - "notAllow" - ] - }, - "operation": { - "type": "string", - "enum": [ - "All", - "Create", - "Delete", - "ViewAll", - "ViewBasic", - "ViewUsage", - "ViewTests", - "ViewQueries", - "ViewDataProfile", - "ViewSampleData", - "EditAll", - "EditCustomFields", - "EditDataProfile", - "EditDescription", - "EditDisplayName", - "EditLineage", - "EditPolicy", - "EditOwner", - "EditQueries", - "EditReviewers", - "EditRole", - "EditSampleData", - "EditStatus", - "EditTags", - "EditTeams", - "EditTier", - "EditTests", - "EditUsage", - "EditUsers" - ] - }, - "policy": { - "type": "string" - }, - "role": { - "type": "string" - }, - "rule": { - "$ref": "#/components/schemas/Rule" - } - } - }, - "PersonalAccessToken": { - "required": ["expiryDate", "token", "userId"], - "type": "object", - "properties": { - "expiryDate": { - "type": "integer", - "format": "int64" - }, - "jwtToken": { - "type": "string" - }, - "token": { - "type": "string", - "format": "uuid" - }, - "tokenName": { - "type": "string" - }, - "tokenType": { - "type": "string", - "enum": [ - "REFRESH_TOKEN", - "EMAIL_VERIFICATION", - "PASSWORD_RESET", - "PERSONAL_ACCESS_TOKEN" - ] - }, - "userId": { - "type": "string", - "format": "uuid" - } - } - }, - "PersonalAccessTokenList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PersonalAccessToken" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - }, - "paging": { - "$ref": "#/components/schemas/Paging" - } - } - }, - "Pipeline": { - "required": ["id", "name", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" - }, - "concurrency": { - "type": "integer", - "format": "int32" - }, - "deleted": { - "type": "boolean" - }, - "description": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "displayName": { - "type": "string" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "href": { - "type": "string", - "format": "uri" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" + "pipelineLocation" : { + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "pipelineStatus" : { + "$ref" : "#/components/schemas/PipelineStatus" }, - "pipelineLocation": { - "type": "string" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "pipelineStatus": { - "$ref": "#/components/schemas/PipelineStatus" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "scheduleInterval" : { + "type" : "string" }, - "scheduleInterval": { - "type": "string" + "service" : { + "$ref" : "#/components/schemas/EntityReference" }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "serviceType" : { + "type" : "string", + "enum" : [ "Airflow", "GluePipeline", "Airbyte", "Fivetran", "Dagster", "Nifi", "DomoPipeline", "CustomPipeline", "DatabricksPipeline", "Spline" ] }, - "serviceType": { - "type": "string", - "enum": [ - "Airflow", - "GluePipeline", - "Airbyte", - "Fivetran", - "Dagster", - "Nifi", - "DomoPipeline", - "CustomPipeline", - "DatabricksPipeline", - "Spline" - ] + "sourceUrl" : { + "type" : "string" }, - "sourceUrl": { - "type": "string" + "startDate" : { + "type" : "string", + "format" : "date-time" }, - "startDate": { - "type": "string", - "format": "date-time" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "tasks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Task" + "tasks" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Task" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "PipelineConnection": { - "type": "object", - "properties": { - "config": { - "type": "object" + "PipelineConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" } } }, - "PipelineList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Pipeline" + "PipelineList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Pipeline" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "PipelineService": { - "required": ["id", "name", "serviceType"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "PipelineService" : { + "required" : [ "id", "name", "serviceType" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "connection" : { + "$ref" : "#/components/schemas/PipelineConnection" }, - "connection": { - "$ref": "#/components/schemas/PipelineConnection" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" }, - "deleted": { - "type": "boolean" + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "serviceType" : { + "type" : "string", + "enum" : [ "Airflow", "GluePipeline", "Airbyte", "Fivetran", "Dagster", "Nifi", "DomoPipeline", "CustomPipeline", "DatabricksPipeline", "Spline" ] }, - "serviceType": { - "type": "string", - "enum": [ - "Airflow", - "GluePipeline", - "Airbyte", - "Fivetran", - "Dagster", - "Nifi", - "DomoPipeline", - "CustomPipeline", - "DatabricksPipeline", - "Spline" - ] + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "testConnectionResult": { - "$ref": "#/components/schemas/TestConnectionResult" + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "PipelineServiceList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineService" + "PipelineServiceList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PipelineService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "PipelineStatus": { - "type": "object", - "properties": { - "executionStatus": { - "type": "string", - "enum": ["Successful", "Failed", "Pending"] + "PipelineStatus" : { + "required" : [ "executionStatus", "timestamp" ], + "type" : "object", + "properties" : { + "executionStatus" : { + "type" : "string", + "enum" : [ "Successful", "Failed", "Pending" ] }, - "taskStatus": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Status" + "taskStatus" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Status" } }, - "timestamp": { - "type": "integer", - "format": "int64" + "timestamp" : { + "type" : "integer", + "format" : "int64" } } }, - "Policy": { - "required": ["id", "name", "rules"], - "type": "object", - "properties": { - "allowDelete": { - "type": "boolean" + "Policy" : { + "required" : [ "id", "name", "rules" ], + "type" : "object", + "properties" : { + "allowDelete" : { + "type" : "boolean" }, - "allowEdit": { - "type": "boolean" + "allowEdit" : { + "type" : "boolean" }, - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "deleted": { - "type": "boolean" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "disabled": { - "type": "boolean" + "disabled" : { + "type" : "boolean" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "enabled": { - "type": "boolean" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "extension": { - "type": "object" + "enabled" : { + "type" : "boolean" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" }, - "href": { - "type": "string", - "format": "uri" + "id" : { + "type" : "string", + "format" : "uuid" }, - "id": { - "type": "string", - "format": "uuid" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "location": { - "$ref": "#/components/schemas/EntityReference" + "location" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "rules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Rule" + "roles" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "rules" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Rule" } }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "teams" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "PolicyList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Policy" + "PolicyList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Policy" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "Post": { - "required": ["from", "id", "message"], - "type": "object", - "properties": { - "from": { - "type": "string" + "Post" : { + "required" : [ "from", "id", "message" ], + "type" : "object", + "properties" : { + "from" : { + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "message": { - "type": "string" + "message" : { + "type" : "string" }, - "postTs": { - "type": "integer", - "format": "int64" + "postTs" : { + "type" : "integer", + "format" : "int64" }, - "reactions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Reaction" + "reactions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Reaction" } } } }, - "PostList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Post" + "PostList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Post" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "Profile": { - "type": "object", - "properties": { - "images": { - "$ref": "#/components/schemas/ImageList" + "Profile" : { + "type" : "object", + "properties" : { + "images" : { + "$ref" : "#/components/schemas/ImageList" }, - "subscription": { - "$ref": "#/components/schemas/SubscriptionConfig" + "subscription" : { + "$ref" : "#/components/schemas/SubscriptionConfig" } } }, - "ProfileResult": { - "type": "object", - "properties": { - "debugInfo": { - "type": "object", - "additionalProperties": { - "type": "object" + "ProfileResult" : { + "type" : "object", + "properties" : { + "debugInfo" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" } }, - "fragment": { - "type": "boolean" + "fragment" : { + "type" : "boolean" }, - "luceneDescription": { - "type": "string" + "luceneDescription" : { + "type" : "string" }, - "profiledChildren": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProfileResult" + "profiledChildren" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ProfileResult" } }, - "queryName": { - "type": "string" + "queryName" : { + "type" : "string" }, - "time": { - "type": "integer", - "format": "int64" + "time" : { + "type" : "integer", + "format" : "int64" }, - "timeBreakdown": { - "type": "object", - "additionalProperties": { - "type": "integer", - "format": "int64" + "timeBreakdown" : { + "type" : "object", + "additionalProperties" : { + "type" : "integer", + "format" : "int64" } } } }, - "Query": { - "required": ["name", "query"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Query" : { + "required" : [ "name", "query", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "checksum" : { + "type" : "string" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "checksum": { - "type": "string" + "deleted" : { + "type" : "boolean" }, - "deleted": { - "type": "boolean" + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "duration": { - "type": "number", - "format": "double" + "duration" : { + "type" : "number", + "format" : "double" }, - "extension": { - "type": "object" + "exclude_usage" : { + "type" : "boolean" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "extension" : { + "type" : "object" }, - "href": { - "type": "string", - "format": "uri" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" }, - "id": { - "type": "string", - "format": "uuid" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "processedLineage" : { + "type" : "boolean" }, - "query": { - "type": "string" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "query" : { + "type" : "string" + }, + "queryDate" : { + "type" : "integer", + "format" : "int64" + }, + "queryUsedIn" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "queryDate": { - "type": "integer", - "format": "int64" + "query_type" : { + "type" : "string" }, - "queryUsedIn": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "service" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "triggeredBy" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" }, - "updatedBy": { - "type": "string" + "usedBy" : { + "uniqueItems" : true, + "type" : "array", + "items" : { + "type" : "string" + } }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "users" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "QueryList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Query" + "QueryList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Query" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "QueryProfileShardResult": { - "type": "object", - "properties": { - "collectorResult": { - "$ref": "#/components/schemas/CollectorResult" + "QueryProfileShardResult" : { + "type" : "object", + "properties" : { + "collectorResult" : { + "$ref" : "#/components/schemas/CollectorResult" }, - "fragment": { - "type": "boolean" + "fragment" : { + "type" : "boolean" }, - "queryResults": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProfileResult" + "queryResults" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ProfileResult" } }, - "rewriteTime": { - "type": "integer", - "format": "int64" + "rewriteTime" : { + "type" : "integer", + "format" : "int64" } } }, - "Reaction": { - "required": ["reactionType", "user"], - "type": "object", - "properties": { - "reactionType": { - "type": "string", - "enum": [ - "thumbsUp", - "thumbsDown", - "hooray", - "laugh", - "confused", - "heart", - "rocket", - "eyes" - ] + "Reaction" : { + "required" : [ "reactionType", "user" ], + "type" : "object", + "properties" : { + "reactionType" : { + "type" : "string", + "enum" : [ "thumbsUp", "thumbsDown", "hooray", "laugh", "confused", "heart", "rocket", "eyes" ] }, - "user": { - "$ref": "#/components/schemas/EntityReference" + "user" : { + "$ref" : "#/components/schemas/EntityReference" } } }, - "RegistrationRequest": { - "required": ["email", "firstName", "lastName", "password"], - "type": "object", - "properties": { - "email": { - "maxLength": 127, - "minLength": 6, - "pattern": "^\\S+@\\S+\\.\\S+$", - "type": "string" + "RegistrationRequest" : { + "required" : [ "email", "firstName", "lastName", "password" ], + "type" : "object", + "properties" : { + "email" : { + "maxLength" : 127, + "minLength" : 6, + "pattern" : "^[\\S.!#$%&’*+/=?^_`{|}~-]+@\\S+\\.\\S+$", + "type" : "string" }, - "firstName": { - "type": "string" + "firstName" : { + "type" : "string" }, - "lastName": { - "type": "string" + "lastName" : { + "type" : "string" }, - "password": { - "maxLength": 16, - "minLength": 8, - "type": "string" + "password" : { + "maxLength" : 16, + "minLength" : 8, + "type" : "string" } } }, - "Report": { - "required": ["id", "name", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Report" : { + "required" : [ "id", "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "deleted": { - "type": "boolean" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "description": { - "type": "string" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "service" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "usageSummary" : { + "$ref" : "#/components/schemas/UsageDetails" }, - "displayName": { - "type": "string" + "version" : { + "type" : "number", + "format" : "double" }, - "extension": { - "type": "object" + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "ReportList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Report" + } }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "paging" : { + "$ref" : "#/components/schemas/Paging" + } + } + }, + "ResolveTask" : { + "required" : [ "newValue" ], + "type" : "object", + "properties" : { + "newValue" : { + "type" : "string" + } + } + }, + "ResourceDescriptor" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "operations" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "All", "Create", "Delete", "ViewAll", "ViewBasic", "ViewUsage", "ViewTests", "ViewQueries", "ViewDataProfile", "ViewSampleData", "EditAll", "EditCustomFields", "EditDataProfile", "EditDescription", "EditDisplayName", "EditLineage", "EditPolicy", "EditOwner", "EditQueries", "EditReviewers", "EditRole", "EditSampleData", "EditStatus", "EditTags", "EditTeams", "EditTier", "EditTests", "EditUsage", "EditUsers", "EditLifeCycle", "EditKnowledgePanel", "EditPage" ] + } + } + } + }, + "ResourcePermission" : { + "required" : [ "permissions", "resource" ], + "type" : "object", + "properties" : { + "permissions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Permission" + } }, - "id": { - "type": "string", - "format": "uuid" + "resource" : { + "type" : "string" + } + } + }, + "ResourcePermissionList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ResourcePermission" + } }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "provider": { - "type": "string", - "enum": ["system", "user"] - }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - }, - "updatedAt": { - "type": "integer", - "format": "int64" + "paging" : { + "$ref" : "#/components/schemas/Paging" + } + } + }, + "RestoreEntity" : { + "required" : [ "id" ], + "type" : "object", + "properties" : { + "id" : { + "type" : "string", + "format" : "uuid" + } + } + }, + "ResultListApp" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/App" + } }, - "updatedBy": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "usageSummary": { - "$ref": "#/components/schemas/UsageDetails" + "paging" : { + "$ref" : "#/components/schemas/Paging" + } + } + }, + "ResultListAppMarketPlaceDefinition" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/AppMarketPlaceDefinition" + } }, - "version": { - "type": "number", - "format": "double" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "votes": { - "$ref": "#/components/schemas/Votes" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ReportList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Report" + "ResultListBot" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Bot" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResolveTask": { - "required": ["newValue"], - "type": "object", - "properties": { - "newValue": { - "type": "string" + "ResultListChangeEvent" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ChangeEvent" + } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResourceDescriptor": { - "type": "object", - "properties": { - "name": { - "type": "string" + "ResultListChart" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Chart" + } }, - "operations": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "All", - "Create", - "Delete", - "ViewAll", - "ViewBasic", - "ViewUsage", - "ViewTests", - "ViewQueries", - "ViewDataProfile", - "ViewSampleData", - "EditAll", - "EditCustomFields", - "EditDataProfile", - "EditDescription", - "EditDisplayName", - "EditLineage", - "EditPolicy", - "EditOwner", - "EditQueries", - "EditReviewers", - "EditRole", - "EditSampleData", - "EditStatus", - "EditTags", - "EditTeams", - "EditTier", - "EditTests", - "EditUsage", - "EditUsers" - ] + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } + }, + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResourcePermission": { - "required": ["permissions", "resource"], - "type": "object", - "properties": { - "permissions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" + "ResultListClassification" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Classification" + } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "resource": { - "type": "string" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResourcePermissionList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResourcePermission" + "ResultListColumnProfile" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ColumnProfile" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "RestoreEntity": { - "required": ["id"], - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" + "ResultListContainer" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Container" + } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListBot": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Bot" + "ResultListDashboard" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Dashboard" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListChangeEvent": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChangeEvent" + "ResultListDashboardDataModel" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DashboardDataModel" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListChart": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Chart" + "ResultListDashboardService" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DashboardService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListClassification": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Classification" + "ResultListDataProduct" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DataProduct" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListColumnProfile": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ColumnProfile" + "ResultListDatabase" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Database" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListContainer": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Container" + "ResultListDatabaseSchema" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DatabaseSchema" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListDashboard": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Dashboard" + "ResultListDatabaseService" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/DatabaseService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListDashboardDataModel": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DashboardDataModel" + "ResultListDocument" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Document" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListDashboardService": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DashboardService" + "ResultListDomain" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Domain" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListDatabase": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Database" + "ResultListEventSubscription" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EventSubscription" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListDatabaseSchema": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DatabaseSchema" + "ResultListFunction" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Function" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListDatabaseService": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DatabaseService" + "ResultListGlossary" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Glossary" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListEventSubscription": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EventSubscription" + "ResultListGlossaryTerm" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/GlossaryTerm" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListFunction": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Function" + "ResultListMessagingService" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MessagingService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListGlossary": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Glossary" + "ResultListMetadataService" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MetadataService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListGlossaryTerm": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GlossaryTerm" + "ResultListMetrics" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Metrics" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListMessagingService": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessagingService" + "ResultListMlModel" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlModel" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListMetadataService": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetadataService" + "ResultListMlModelService" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/MlModelService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListMetrics": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metrics" + "ResultListPersona" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Persona" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListMlModel": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlModel" + "ResultListPipeline" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Pipeline" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListMlModelService": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MlModelService" + "ResultListPipelineService" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PipelineService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListPipeline": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Pipeline" + "ResultListPipelineStatus" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PipelineStatus" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListPipelineService": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineService" + "ResultListPolicy" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Policy" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListPipelineStatus": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineStatus" + "ResultListPost" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Post" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListPolicy": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Policy" + "ResultListQuery" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Query" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListPost": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Post" + "ResultListReport" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Report" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListQuery": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Query" + "ResultListResourceDescriptor" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ResourceDescriptor" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListReport": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Report" + "ResultListResourcePermission" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ResourcePermission" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListResourceDescriptor": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResourceDescriptor" + "ResultListRole" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Role" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListResourcePermission": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResourcePermission" + "ResultListSearchIndex" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SearchIndex" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListRole": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" + "ResultListSearchService" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SearchService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListStorageService": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageService" + "ResultListStorageService" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/StorageService" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListSubscriptionResourceDescriptor": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubscriptionResourceDescriptor" + "ResultListStoredProcedure" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/StoredProcedure" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListSystemProfile": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SystemProfile" + "ResultListSubscriptionResourceDescriptor" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SubscriptionResourceDescriptor" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTable": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" + "ResultListSystemProfile" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SystemProfile" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTableProfile": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableProfile" + "ResultListTable" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Table" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTag": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" + "ResultListTag" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Tag" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTeam": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Team" + "ResultListTeam" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Team" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTeamHierarchy": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamHierarchy" + "ResultListTeamHierarchy" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TeamHierarchy" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTestCase": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestCase" + "ResultListTestCase" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestCase" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTestCaseResult": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestCaseResult" + "ResultListTestCaseResult" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestCaseResult" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTestDefinition": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestDefinition" + "ResultListTestDefinition" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestDefinition" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTestSuite": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestSuite" + "ResultListTestSuite" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestSuite" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListThread": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Thread" + "ResultListThread" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Thread" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListTopic": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Topic" + "ResultListTopic" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Topic" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListType": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Type" + "ResultListType" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Type" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "ResultListUser": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" + "ResultListUser" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/User" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" + } + } + }, + "ResultSummary" : { + "type" : "object", + "properties" : { + "status" : { + "type" : "string", + "enum" : [ "Success", "Failed", "Aborted" ] + }, + "testCaseName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "timestamp" : { + "type" : "integer", + "format" : "int64" } } }, - "RevokePersonalTokenRequest": { - "type": "object", - "properties": { - "tokenIds": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" + "RevokePersonalTokenRequest" : { + "type" : "object", + "properties" : { + "tokenIds" : { + "type" : "array", + "items" : { + "type" : "string", + "format" : "uuid" } } } }, - "RevokeTokenRequest": { - "required": ["id"], - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" + "RevokeTokenRequest" : { + "required" : [ "id" ], + "type" : "object", + "properties" : { + "id" : { + "type" : "string", + "format" : "uuid" } } }, - "Role": { - "required": ["id", "name"], - "type": "object", - "properties": { - "allowDelete": { - "type": "boolean" + "Role" : { + "required" : [ "id", "name" ], + "type" : "object", + "properties" : { + "allowDelete" : { + "type" : "boolean" + }, + "allowEdit" : { + "type" : "boolean" + }, + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "allowEdit": { - "type": "boolean" + "deleted" : { + "type" : "boolean" }, - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "description" : { + "type" : "string" }, - "deleted": { - "type": "boolean" + "disabled" : { + "type" : "boolean" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "disabled": { - "type": "boolean" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "displayName": { - "type": "string" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "href": { - "type": "string", - "format": "uri" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "policies" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "policies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "teams" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "users" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "RoleList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" + "RoleList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Role" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "Rule": { - "required": ["effect", "name", "operations", "resources"], - "type": "object", - "properties": { - "condition": { - "type": "string" + "Rule" : { + "required" : [ "effect", "name", "operations", "resources" ], + "type" : "object", + "properties" : { + "condition" : { + "type" : "string" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "effect": { - "type": "string", - "enum": ["allow", "deny"] + "effect" : { + "type" : "string", + "enum" : [ "allow", "deny" ] }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "name": { - "type": "string" + "name" : { + "type" : "string" }, - "operations": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "All", - "Create", - "Delete", - "ViewAll", - "ViewBasic", - "ViewUsage", - "ViewTests", - "ViewQueries", - "ViewDataProfile", - "ViewSampleData", - "EditAll", - "EditCustomFields", - "EditDataProfile", - "EditDescription", - "EditDisplayName", - "EditLineage", - "EditPolicy", - "EditOwner", - "EditQueries", - "EditReviewers", - "EditRole", - "EditSampleData", - "EditStatus", - "EditTags", - "EditTeams", - "EditTier", - "EditTests", - "EditUsage", - "EditUsers" - ] + "operations" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "All", "Create", "Delete", "ViewAll", "ViewBasic", "ViewUsage", "ViewTests", "ViewQueries", "ViewDataProfile", "ViewSampleData", "EditAll", "EditCustomFields", "EditDataProfile", "EditDescription", "EditDisplayName", "EditLineage", "EditPolicy", "EditOwner", "EditQueries", "EditReviewers", "EditRole", "EditSampleData", "EditStatus", "EditTags", "EditTeams", "EditTier", "EditTests", "EditUsage", "EditUsers", "EditLifeCycle", "EditKnowledgePanel", "EditPage" ] } }, - "resources": { - "type": "array", - "items": { - "type": "string" + "resources" : { + "type" : "array", + "items" : { + "type" : "string" } } } }, - "SearchHit": { - "type": "object", - "properties": { - "clusterAlias": { - "type": "string" + "SampleDataStorageConfig" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" + } + } + }, + "SearchConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" + } + } + }, + "SearchHit" : { + "type" : "object", + "properties" : { + "clusterAlias" : { + "type" : "string" }, - "documentFields": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DocumentField" + "documentFields" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/DocumentField" } }, - "explanation": { - "$ref": "#/components/schemas/Explanation" + "explanation" : { + "$ref" : "#/components/schemas/Explanation" }, - "fields": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DocumentField" + "fields" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/DocumentField" } }, - "fragment": { - "type": "boolean" + "fragment" : { + "type" : "boolean" }, - "highlightFields": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/HighlightField" + "highlightFields" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/HighlightField" } }, - "id": { - "type": "string" + "id" : { + "type" : "string" }, - "index": { - "type": "string" + "index" : { + "type" : "string" }, - "innerHits": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/SearchHits" + "innerHits" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/SearchHits" } }, - "matchedQueries": { - "type": "array", - "items": { - "type": "string" + "matchedQueries" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "metadataFields": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/DocumentField" + "metadataFields" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/DocumentField" } }, - "nestedIdentity": { - "$ref": "#/components/schemas/NestedIdentity" + "nestedIdentity" : { + "$ref" : "#/components/schemas/NestedIdentity" }, - "primaryTerm": { - "type": "integer", - "format": "int64" + "primaryTerm" : { + "type" : "integer", + "format" : "int64" }, - "rawSortValues": { - "type": "array", - "items": { - "type": "object" + "rawSortValues" : { + "type" : "array", + "items" : { + "type" : "object" } }, - "score": { - "type": "number", - "format": "float" + "score" : { + "type" : "number", + "format" : "float" + }, + "seqNo" : { + "type" : "integer", + "format" : "int64" }, - "seqNo": { - "type": "integer", - "format": "int64" + "shard" : { + "$ref" : "#/components/schemas/SearchShardTarget" }, - "shard": { - "$ref": "#/components/schemas/SearchShardTarget" + "sortValues" : { + "type" : "array", + "items" : { + "type" : "object" + } }, - "sortValues": { - "type": "array", - "items": { - "type": "object" + "sourceAsMap" : { + "type" : "object", + "additionalProperties" : { + "type" : "object" } }, - "sourceAsMap": { - "type": "object", - "additionalProperties": { - "type": "object" + "sourceAsString" : { + "type" : "string" + }, + "sourceRef" : { + "$ref" : "#/components/schemas/BytesReference" + }, + "type" : { + "type" : "string" + }, + "version" : { + "type" : "integer", + "format" : "int64" + } + } + }, + "SearchHits" : { + "type" : "object", + "properties" : { + "collapseField" : { + "type" : "string" + }, + "collapseValues" : { + "type" : "array", + "items" : { + "type" : "object" } }, - "sourceAsString": { - "type": "string" + "fragment" : { + "type" : "boolean" }, - "sourceRef": { - "$ref": "#/components/schemas/BytesReference" + "hits" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SearchHit" + } + }, + "maxScore" : { + "type" : "number", + "format" : "float" }, - "type": { - "type": "string" + "sortFields" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SortField" + } }, - "version": { - "type": "integer", - "format": "int64" + "totalHits" : { + "$ref" : "#/components/schemas/TotalHits" } } }, - "SearchHits": { - "type": "object", - "properties": { - "collapseField": { - "type": "string" + "SearchIndex" : { + "required" : [ "fields", "id", "name", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" + }, + "fields" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SearchIndexField" + } + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "sampleData" : { + "$ref" : "#/components/schemas/SearchIndexSampleData" }, - "collapseValues": { - "type": "array", - "items": { - "type": "object" + "searchIndexSettings" : { + "$ref" : "#/components/schemas/SearchIndexSettings" + }, + "service" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "ElasticSearch", "OpenSearch", "CustomSearch" ] + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "SearchIndexField" : { + "required" : [ "dataType", "name" ], + "type" : "object", + "properties" : { + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SearchIndexField" } }, - "fragment": { - "type": "boolean" + "dataType" : { + "type" : "string", + "enum" : [ "NUMBER", "TEXT", "BINARY", "TIMESTAMP", "TIMESTAMPZ", "TIME", "DATE", "DATETIME", "KEYWORD", "ARRAY", "OBJECT", "FLATTENED", "NESTED", "JOIN", "RANGE", "IP", "VERSION", "MURMUR3", "AGGREGATE_METRIC_DOUBLE", "HISTOGRAM", "ANNOTATED-TEXT", "COMPLETION", "SEARCH_AS_YOU_TYPE", "DENSE_VECTOR", "RANK_FEATURE", "RANK_FEATURES", "GEO_POINT", "GEO_SHAPE", "POINT", "SHAPE", "PERCOLATOR", "BOOLEAN", "CONSTANT_KEYWORD", "WILDCARD", "LONG", "INTEGER", "SHORT", "BYTE", "DOUBLE", "FLOAT", "HALF_FLOAT", "SCALED_FLOAT", "UNSIGNED_LONG", "UNKNOWN" ] + }, + "dataTypeDisplay" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "hits": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchHit" + "name" : { + "maxLength" : 256, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + } + } + }, + "SearchIndexList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SearchIndex" + } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "maxScore": { - "type": "number", - "format": "float" + "paging" : { + "$ref" : "#/components/schemas/Paging" + } + } + }, + "SearchIndexSampleData" : { + "type" : "object", + "properties" : { + "messages" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "SearchIndexSettings" : { + "type" : "object" + }, + "SearchProfileQueryPhaseResult" : { + "type" : "object", + "properties" : { + "aggregationProfileResults" : { + "$ref" : "#/components/schemas/AggregationProfileShardResult" }, - "sortFields": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SortField" + "queryProfileResults" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/QueryProfileShardResult" } + } + } + }, + "SearchProfileShardResult" : { + "type" : "object", + "properties" : { + "aggregationProfileResults" : { + "$ref" : "#/components/schemas/AggregationProfileShardResult" + }, + "fetchPhase" : { + "$ref" : "#/components/schemas/ProfileResult" + }, + "fragment" : { + "type" : "boolean" }, - "totalHits": { - "$ref": "#/components/schemas/TotalHits" + "queryPhase" : { + "$ref" : "#/components/schemas/SearchProfileQueryPhaseResult" + }, + "queryProfileResults" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/QueryProfileShardResult" + } } } }, - "SearchProfileQueryPhaseResult": { - "type": "object", - "properties": { - "aggregationProfileResults": { - "$ref": "#/components/schemas/AggregationProfileShardResult" + "SearchResponse" : { + "type" : "object", + "properties" : { + "aggregations" : { + "$ref" : "#/components/schemas/Aggregations" + }, + "clusters" : { + "$ref" : "#/components/schemas/Clusters" + }, + "failedShards" : { + "type" : "integer", + "format" : "int32" }, - "queryProfileResults": { - "type": "array", - "items": { - "$ref": "#/components/schemas/QueryProfileShardResult" + "fragment" : { + "type" : "boolean" + }, + "hits" : { + "$ref" : "#/components/schemas/SearchHits" + }, + "internalResponse" : { + "$ref" : "#/components/schemas/SearchResponseSections" + }, + "numReducePhases" : { + "type" : "integer", + "format" : "int32" + }, + "profileResults" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/SearchProfileShardResult" } + }, + "scrollId" : { + "type" : "string" + }, + "shardFailures" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ShardSearchFailure" + } + }, + "skippedShards" : { + "type" : "integer", + "format" : "int32" + }, + "successfulShards" : { + "type" : "integer", + "format" : "int32" + }, + "suggest" : { + "$ref" : "#/components/schemas/Suggest" + }, + "terminatedEarly" : { + "type" : "boolean" + }, + "timedOut" : { + "type" : "boolean" + }, + "took" : { + "$ref" : "#/components/schemas/TimeValue" + }, + "totalShards" : { + "type" : "integer", + "format" : "int32" + } + } + }, + "SearchResponseSections" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" + }, + "numReducePhases" : { + "type" : "integer", + "format" : "int32" } } }, - "SearchProfileShardResult": { - "type": "object", - "properties": { - "aggregationProfileResults": { - "$ref": "#/components/schemas/AggregationProfileShardResult" + "SearchService" : { + "required" : [ "id", "name", "serviceType" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "connection" : { + "$ref" : "#/components/schemas/SearchConnection" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" }, - "fetchPhase": { - "$ref": "#/components/schemas/ProfileResult" + "description" : { + "type" : "string" }, - "fragment": { - "type": "boolean" + "displayName" : { + "type" : "string" }, - "queryPhase": { - "$ref": "#/components/schemas/SearchProfileQueryPhaseResult" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "queryProfileResults": { - "type": "array", - "items": { - "$ref": "#/components/schemas/QueryProfileShardResult" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } - } - } - }, - "SearchResponse": { - "type": "object", - "properties": { - "aggregations": { - "$ref": "#/components/schemas/Aggregations" }, - "clusters": { - "$ref": "#/components/schemas/Clusters" + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "failedShards": { - "type": "integer", - "format": "int32" + "href" : { + "type" : "string", + "format" : "uri" }, - "fragment": { - "type": "boolean" + "id" : { + "type" : "string", + "format" : "uuid" }, - "hits": { - "$ref": "#/components/schemas/SearchHits" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "internalResponse": { - "$ref": "#/components/schemas/SearchResponseSections" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "numReducePhases": { - "type": "integer", - "format": "int32" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "profileResults": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/SearchProfileShardResult" + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "scrollId": { - "type": "string" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "shardFailures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ShardSearchFailure" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "skippedShards": { - "type": "integer", - "format": "int32" + "serviceType" : { + "type" : "string", + "enum" : [ "ElasticSearch", "OpenSearch", "CustomSearch" ] }, - "successfulShards": { - "type": "integer", - "format": "int32" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "suggest": { - "$ref": "#/components/schemas/Suggest" + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" }, - "terminatedEarly": { - "type": "boolean" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "timedOut": { - "type": "boolean" + "updatedBy" : { + "type" : "string" }, - "took": { - "$ref": "#/components/schemas/TimeValue" + "version" : { + "type" : "number", + "format" : "double" }, - "totalShards": { - "type": "integer", - "format": "int32" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "SearchResponseSections": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "SearchServiceList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SearchService" + } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "numReducePhases": { - "type": "integer", - "format": "int32" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "SearchShardTarget": { - "type": "object", - "properties": { - "clusterAlias": { - "type": "string" + "SearchShardTarget" : { + "type" : "object", + "properties" : { + "clusterAlias" : { + "type" : "string" }, - "fullyQualifiedIndexName": { - "type": "string" + "fullyQualifiedIndexName" : { + "type" : "string" }, - "index": { - "type": "string" + "index" : { + "type" : "string" }, - "nodeId": { - "type": "string" + "nodeId" : { + "type" : "string" }, - "nodeIdText": { - "$ref": "#/components/schemas/Text" + "nodeIdText" : { + "$ref" : "#/components/schemas/Text" }, - "shardId": { - "$ref": "#/components/schemas/ShardId" + "shardId" : { + "$ref" : "#/components/schemas/ShardId" } } }, - "ShardId": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "ShardId" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" }, - "id": { - "type": "integer", - "format": "int32" + "id" : { + "type" : "integer", + "format" : "int32" }, - "index": { - "$ref": "#/components/schemas/Index" + "index" : { + "$ref" : "#/components/schemas/Index" }, - "indexName": { - "type": "string" + "indexName" : { + "type" : "string" } } }, - "ShardSearchFailure": { - "type": "object", - "properties": { - "cause": { - "type": "object", - "properties": { - "localizedMessage": { - "type": "string" + "ShardSearchFailure" : { + "type" : "object", + "properties" : { + "cause" : { + "type" : "object", + "properties" : { + "localizedMessage" : { + "type" : "string" }, - "message": { - "type": "string" + "message" : { + "type" : "string" }, - "stackTrace": { - "type": "array", - "items": { - "type": "object", - "properties": { - "classLoaderName": { - "type": "string" + "stackTrace" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "classLoaderName" : { + "type" : "string" }, - "moduleName": { - "type": "string" + "moduleName" : { + "type" : "string" }, - "moduleVersion": { - "type": "string" + "moduleVersion" : { + "type" : "string" }, - "methodName": { - "type": "string" + "methodName" : { + "type" : "string" }, - "fileName": { - "type": "string" + "fileName" : { + "type" : "string" }, - "lineNumber": { - "type": "integer", - "format": "int32" + "lineNumber" : { + "type" : "integer", + "format" : "int32" }, - "className": { - "type": "string" + "nativeMethod" : { + "type" : "boolean" }, - "nativeMethod": { - "type": "boolean" + "className" : { + "type" : "string" } } } }, - "suppressed": { - "type": "array", - "items": { - "type": "object", - "properties": { - "stackTrace": { - "type": "array", - "items": { - "type": "object", - "properties": { - "classLoaderName": { - "type": "string" + "suppressed" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "stackTrace" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "classLoaderName" : { + "type" : "string" }, - "moduleName": { - "type": "string" + "moduleName" : { + "type" : "string" }, - "moduleVersion": { - "type": "string" + "moduleVersion" : { + "type" : "string" }, - "methodName": { - "type": "string" + "methodName" : { + "type" : "string" }, - "fileName": { - "type": "string" + "fileName" : { + "type" : "string" }, - "lineNumber": { - "type": "integer", - "format": "int32" + "lineNumber" : { + "type" : "integer", + "format" : "int32" }, - "className": { - "type": "string" + "nativeMethod" : { + "type" : "boolean" }, - "nativeMethod": { - "type": "boolean" + "className" : { + "type" : "string" } } } }, - "message": { - "type": "string" + "message" : { + "type" : "string" }, - "localizedMessage": { - "type": "string" + "localizedMessage" : { + "type" : "string" } } } } } }, - "fragment": { - "type": "boolean" + "fragment" : { + "type" : "boolean" }, - "localizedMessage": { - "type": "string" + "localizedMessage" : { + "type" : "string" }, - "message": { - "type": "string" + "message" : { + "type" : "string" }, - "stackTrace": { - "type": "array", - "items": { - "type": "object", - "properties": { - "classLoaderName": { - "type": "string" + "stackTrace" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "classLoaderName" : { + "type" : "string" }, - "moduleName": { - "type": "string" + "moduleName" : { + "type" : "string" }, - "moduleVersion": { - "type": "string" + "moduleVersion" : { + "type" : "string" }, - "methodName": { - "type": "string" + "methodName" : { + "type" : "string" }, - "fileName": { - "type": "string" + "fileName" : { + "type" : "string" }, - "lineNumber": { - "type": "integer", - "format": "int32" + "lineNumber" : { + "type" : "integer", + "format" : "int32" }, - "className": { - "type": "string" + "nativeMethod" : { + "type" : "boolean" }, - "nativeMethod": { - "type": "boolean" + "className" : { + "type" : "string" } } } }, - "suppressed": { - "type": "array", - "items": { - "type": "object", - "properties": { - "stackTrace": { - "type": "array", - "items": { - "type": "object", - "properties": { - "classLoaderName": { - "type": "string" + "suppressed" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "stackTrace" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "classLoaderName" : { + "type" : "string" }, - "moduleName": { - "type": "string" + "moduleName" : { + "type" : "string" }, - "moduleVersion": { - "type": "string" + "moduleVersion" : { + "type" : "string" }, - "methodName": { - "type": "string" + "methodName" : { + "type" : "string" }, - "fileName": { - "type": "string" + "fileName" : { + "type" : "string" }, - "lineNumber": { - "type": "integer", - "format": "int32" + "lineNumber" : { + "type" : "integer", + "format" : "int32" }, - "className": { - "type": "string" + "nativeMethod" : { + "type" : "boolean" }, - "nativeMethod": { - "type": "boolean" + "className" : { + "type" : "string" } } } }, - "message": { - "type": "string" + "message" : { + "type" : "string" }, - "localizedMessage": { - "type": "string" + "localizedMessage" : { + "type" : "string" } } } } } }, - "SortField": { - "type": "object", - "properties": { - "bytesComparator": { - "type": "object" + "SortField" : { + "type" : "object", + "properties" : { + "bytesComparator" : { + "type" : "object" + }, + "canUsePoints" : { + "type" : "boolean" }, - "canUsePoints": { - "type": "boolean" + "comparatorSource" : { + "$ref" : "#/components/schemas/FieldComparatorSource" }, - "comparatorSource": { - "$ref": "#/components/schemas/FieldComparatorSource" + "field" : { + "type" : "string" }, - "field": { - "type": "string" + "indexSorter" : { + "$ref" : "#/components/schemas/IndexSorter" + }, + "missingValue" : { + "type" : "object" + }, + "reverse" : { + "type" : "boolean" + }, + "type" : { + "type" : "string", + "enum" : [ "SCORE", "DOC", "STRING", "INT", "FLOAT", "LONG", "DOUBLE", "CUSTOM", "STRING_VAL", "REWRITEABLE" ] + } + } + }, + "Status" : { + "required" : [ "executionStatus", "name" ], + "type" : "object", + "properties" : { + "endTime" : { + "type" : "integer", + "format" : "int64" }, - "indexSorter": { - "$ref": "#/components/schemas/IndexSorter" + "executionStatus" : { + "type" : "string", + "enum" : [ "Successful", "Failed", "Pending" ] }, - "missingValue": { - "type": "object" + "logLink" : { + "type" : "string", + "format" : "uri" }, - "reverse": { - "type": "boolean" + "name" : { + "type" : "string" }, - "type": { - "type": "string", - "enum": [ - "SCORE", - "DOC", - "STRING", - "INT", - "FLOAT", - "LONG", - "DOUBLE", - "CUSTOM", - "STRING_VAL", - "REWRITEABLE" - ] + "startTime" : { + "type" : "integer", + "format" : "int64" + } + } + }, + "StorageConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" } } }, - "Status": { - "required": ["executionStatus", "name"], - "type": "object", - "properties": { - "endTime": { - "type": "integer", - "format": "int64" + "StorageService" : { + "required" : [ "id", "name", "serviceType" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "connection" : { + "$ref" : "#/components/schemas/StorageConnection" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "executionStatus": { - "type": "string", - "enum": ["Successful", "Failed", "Pending"] + "extension" : { + "type" : "object" }, - "logLink": { - "type": "string", - "format": "uri" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "serviceType" : { + "type" : "string", + "enum" : [ "S3", "ADLS", "CustomStorage" ] + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "name": { - "type": "string" + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" }, - "startTime": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "StorageConnection": { - "type": "object", - "properties": { - "config": { - "type": "object" + "StorageServiceList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/StorageService" + } + }, + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "StorageService": { - "required": ["id", "name", "serviceType"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "StoredProcedure" : { + "required" : [ "id", "name", "storedProcedureCode" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "code" : { + "type" : "string" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "connection": { - "$ref": "#/components/schemas/StorageConnection" + "database" : { + "$ref" : "#/components/schemas/EntityReference" }, - "deleted": { - "type": "boolean" + "databaseSchema" : { + "$ref" : "#/components/schemas/EntityReference" }, - "description": { - "type": "string" + "deleted" : { + "type" : "boolean" }, - "displayName": { - "type": "string" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "name" : { + "maxLength" : 256, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" }, - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "service" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "BigQuery", "Mysql", "Redshift", "Snowflake", "Postgres", "Mssql", "Oracle", "Athena", "Hive", "Impala", "Presto", "Trino", "Vertica", "Glue", "MariaDB", "Druid", "Db2", "Clickhouse", "Databricks", "AzureSQL", "DynamoDB", "SingleStore", "SQLite", "DeltaLake", "Salesforce", "PinotDB", "Datalake", "DomoDatabase", "QueryLog", "CustomDatabase", "Dbt", "SapHana", "MongoDB", "Couchbase", "Greenplum" ] + }, + "sourceUrl" : { + "type" : "string" }, - "serviceType": { - "type": "string", - "enum": ["S3", "CustomStorage"] + "storedProcedureCode" : { + "$ref" : "#/components/schemas/StoredProcedureCode" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "testConnectionResult": { - "$ref": "#/components/schemas/TestConnectionResult" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedBy" : { + "type" : "string" }, - "updatedBy": { - "type": "string" + "version" : { + "type" : "number", + "format" : "double" }, - "version": { - "type": "number", - "format": "double" + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "StoredProcedureCode" : { + "type" : "object", + "properties" : { + "code" : { + "type" : "string" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "language" : { + "type" : "string", + "enum" : [ "SQL", "Java", "JavaScript", "Python" ] } } }, - "StorageServiceList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageService" + "StoredProcedureList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/StoredProcedure" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "SubscriptionConfig": { - "type": "object", - "properties": { - "gChat": { - "$ref": "#/components/schemas/Webhook" + "Style" : { + "type" : "object", + "properties" : { + "color" : { + "type" : "string" }, - "generic": { - "$ref": "#/components/schemas/Webhook" + "iconURL" : { + "type" : "string" + } + } + }, + "SubscriptionConfig" : { + "type" : "object", + "properties" : { + "gChat" : { + "$ref" : "#/components/schemas/Webhook" + }, + "generic" : { + "$ref" : "#/components/schemas/Webhook" }, - "msTeams": { - "$ref": "#/components/schemas/Webhook" + "msTeams" : { + "$ref" : "#/components/schemas/Webhook" }, - "slack": { - "$ref": "#/components/schemas/Webhook" + "slack" : { + "$ref" : "#/components/schemas/Webhook" } } }, - "SubscriptionResourceDescriptor": { - "type": "object", - "properties": { - "name": { - "type": "string" + "SubscriptionResourceDescriptor" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" }, - "supportedFilters": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "matchAnySource", - "matchAnyOwnerName", - "matchAnyEntityFqn", - "matchAnyEntityId", - "matchAnyEventType", - "matchTestResult", - "matchUpdatedBy", - "matchIngestionPipelineState", - "matchAnyFieldChange" - ] + "supportedFilters" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "matchAnySource", "matchAnyOwnerName", "matchAnyEntityFqn", "matchAnyEntityId", "matchAnyEventType", "matchTestResult", "matchUpdatedBy", "matchIngestionPipelineState", "matchAnyFieldChange" ] } } } }, - "SubscriptionStatus": { - "type": "object", - "properties": { - "lastFailedAt": { - "type": "integer", - "format": "int64" + "SubscriptionStatus" : { + "type" : "object", + "properties" : { + "lastFailedAt" : { + "type" : "integer", + "format" : "int64" }, - "lastFailedReason": { - "type": "string" + "lastFailedReason" : { + "type" : "string" }, - "lastFailedStatusCode": { - "type": "integer", - "format": "int32" + "lastFailedStatusCode" : { + "type" : "integer", + "format" : "int32" }, - "lastSuccessfulAt": { - "type": "integer", - "format": "int64" + "lastSuccessfulAt" : { + "type" : "integer", + "format" : "int64" }, - "nextAttempt": { - "type": "integer", - "format": "int64" + "nextAttempt" : { + "type" : "integer", + "format" : "int64" }, - "status": { - "type": "string", - "enum": [ - "disabled", - "failed", - "retryLimitReached", - "awaitingRetry", - "active" - ] + "status" : { + "type" : "string", + "enum" : [ "disabled", "failed", "retryLimitReached", "awaitingRetry", "active" ] }, - "timestamp": { - "type": "integer", - "format": "int64" + "timestamp" : { + "type" : "integer", + "format" : "int64" } } }, - "Suggest": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "SuccessContext" : { + "type" : "object" + }, + "Suggest" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" } } }, - "SystemProfile": { - "type": "object", - "properties": { - "operation": { - "type": "string", - "enum": ["UPDATE", "INSERT", "DELETE"] + "SystemProfile" : { + "type" : "object", + "properties" : { + "operation" : { + "type" : "string", + "enum" : [ "UPDATE", "INSERT", "DELETE" ] }, - "rowsAffected": { - "type": "integer", - "format": "int32" + "rowsAffected" : { + "type" : "integer", + "format" : "int32" }, - "timestamp": { - "type": "integer", - "format": "int64" + "timestamp" : { + "type" : "integer", + "format" : "int64" } } }, - "SystemProfileList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SystemProfile" + "SystemProfileList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SystemProfile" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "Table": { - "required": ["columns", "id", "name"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Table" : { + "required" : [ "columns", "id", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Column" + } + }, + "dataModel" : { + "$ref" : "#/components/schemas/DataModel" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "database" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "databaseSchema" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" + }, + "fileFormat" : { + "type" : "string", + "enum" : [ "csv", "tsv", "avro", "parquet", "json", "json.gz", "json.zip" ] + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Column" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "joins" : { + "$ref" : "#/components/schemas/TableJoins" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "location" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "name" : { + "maxLength" : 256, + "minLength" : 1, + "pattern" : "^((?!::).)*$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "profile" : { + "$ref" : "#/components/schemas/TableProfile" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "retentionPeriod" : { + "type" : "string" + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "sampleData" : { + "$ref" : "#/components/schemas/TableData" + }, + "service" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "serviceType" : { + "type" : "string", + "enum" : [ "BigQuery", "Mysql", "Redshift", "Snowflake", "Postgres", "Mssql", "Oracle", "Athena", "Hive", "Impala", "Presto", "Trino", "Vertica", "Glue", "MariaDB", "Druid", "Db2", "Clickhouse", "Databricks", "AzureSQL", "DynamoDB", "SingleStore", "SQLite", "DeltaLake", "Salesforce", "PinotDB", "Datalake", "DomoDatabase", "QueryLog", "CustomDatabase", "Dbt", "SapHana", "MongoDB", "Couchbase", "Greenplum" ] + }, + "sourceUrl" : { + "type" : "string" + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tableConstraints" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TableConstraint" + } + }, + "tablePartition" : { + "$ref" : "#/components/schemas/TablePartition" + }, + "tableProfilerConfig" : { + "$ref" : "#/components/schemas/TableProfilerConfig" + }, + "tableType" : { + "type" : "string", + "enum" : [ "Regular", "External", "View", "SecureView", "MaterializedView", "Iceberg", "Local", "Partitioned", "Foreign", "Transient" ] + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "dataModel": { - "$ref": "#/components/schemas/DataModel" - }, - "database": { - "$ref": "#/components/schemas/EntityReference" - }, - "databaseSchema": { - "$ref": "#/components/schemas/EntityReference" - }, - "deleted": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "extension": { - "type": "object" + "testSuite" : { + "$ref" : "#/components/schemas/TestSuite" + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } - }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "href": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "joins": { - "$ref": "#/components/schemas/TableJoins" - }, - "location": { - "$ref": "#/components/schemas/EntityReference" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^((?!::).)*$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "profile": { - "$ref": "#/components/schemas/TableProfile" - }, - "provider": { - "type": "string", - "enum": ["system", "user"] - }, - "retentionPeriod": { - "type": "string" - }, - "sampleData": { - "$ref": "#/components/schemas/TableData" - }, - "service": { - "$ref": "#/components/schemas/EntityReference" - }, - "serviceType": { - "type": "string", - "enum": [ - "BigQuery", - "Mysql", - "Redshift", - "Snowflake", - "Postgres", - "Mssql", - "Oracle", - "Athena", - "Hive", - "Impala", - "Presto", - "Trino", - "Vertica", - "Glue", - "MariaDB", - "Druid", - "Db2", - "Clickhouse", - "Databricks", - "AzureSQL", - "DynamoDB", - "SingleStore", - "SQLite", - "DeltaLake", - "Salesforce", - "PinotDB", - "Datalake", - "DomoDatabase", - "QueryLog", - "CustomDatabase", - "Dbt", - "SapHana", - "MongoDB" - ] - }, - "sourceUrl": { - "type": "string" - }, - "tableConstraints": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableConstraint" - } - }, - "tablePartition": { - "$ref": "#/components/schemas/TablePartition" - }, - "tableProfilerConfig": { - "$ref": "#/components/schemas/TableProfilerConfig" - }, - "tableType": { - "type": "string", - "enum": [ - "Regular", - "External", - "View", - "SecureView", - "MaterializedView", - "Iceberg", - "Local", - "Partitioned", - "Foreign" - ] - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - }, - "testSuite": { - "$ref": "#/components/schemas/TestSuite" - }, - "updatedAt": { - "type": "integer", - "format": "int64" - }, - "updatedBy": { - "type": "string" - }, - "usageSummary": { - "$ref": "#/components/schemas/UsageDetails" - }, - "version": { - "type": "number", - "format": "double" + "updatedBy" : { + "type" : "string" }, - "viewDefinition": { - "type": "string" + "usageSummary" : { + "$ref" : "#/components/schemas/UsageDetails" }, - "votes": { - "$ref": "#/components/schemas/Votes" - } - } - }, - "TableConstraint": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "string" + "version" : { + "type" : "number", + "format" : "double" + }, + "viewDefinition" : { + "type" : "string" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "TableConstraint" : { + "type" : "object", + "properties" : { + "columns" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "constraintType": { - "type": "string", - "enum": [ - "UNIQUE", - "PRIMARY_KEY", - "FOREIGN_KEY", - "SORT_KEY", - "DIST_KEY" - ] + "constraintType" : { + "type" : "string", + "enum" : [ "UNIQUE", "PRIMARY_KEY", "FOREIGN_KEY", "SORT_KEY", "DIST_KEY" ] }, - "referredColumns": { - "type": "array", - "items": { - "type": "string" + "referredColumns" : { + "type" : "array", + "items" : { + "type" : "string" } } } }, - "TableData": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "string" + "TableData" : { + "type" : "object", + "properties" : { + "columns" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "rows": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "object" + "rows" : { + "type" : "array", + "items" : { + "type" : "array", + "items" : { + "type" : "object" } } } } }, - "TableJoins": { - "type": "object", - "properties": { - "columnJoins": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ColumnJoin" + "TableJoins" : { + "type" : "object", + "properties" : { + "columnJoins" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ColumnJoin" } }, - "dayCount": { - "type": "integer", - "format": "int32" + "dayCount" : { + "type" : "integer", + "format" : "int32" }, - "directTableJoins": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JoinedWith" + "directTableJoins" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/JoinedWith" } }, - "startDate": { - "type": "string" + "startDate" : { + "type" : "string" } } }, - "TableList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" + "TableList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Table" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "TablePartition": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "string" + "TablePartition" : { + "type" : "object", + "properties" : { + "columns" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "interval": { - "type": "string" + "interval" : { + "type" : "string" }, - "intervalType": { - "type": "string", - "enum": [ - "TIME-UNIT", - "INTEGER-RANGE", - "INGESTION-TIME", - "COLUMN-VALUE", - "OTHER" - ] + "intervalType" : { + "type" : "string", + "enum" : [ "TIME-UNIT", "INTEGER-RANGE", "INGESTION-TIME", "COLUMN-VALUE", "OTHER" ] } } }, - "TableProfile": { - "required": ["timestamp"], - "type": "object", - "properties": { - "columnCount": { - "type": "number", - "format": "double" + "TableProfile" : { + "required" : [ "timestamp" ], + "type" : "object", + "properties" : { + "columnCount" : { + "type" : "number", + "format" : "double" }, - "createDateTime": { - "type": "string", - "format": "date-time" + "createDateTime" : { + "type" : "string", + "format" : "date-time" }, - "profileSample": { - "type": "number", - "format": "double" + "profileSample" : { + "type" : "number", + "format" : "double" }, - "profileSampleType": { - "type": "string", - "enum": ["PERCENTAGE", "ROWS"] + "profileSampleType" : { + "type" : "string", + "enum" : [ "PERCENTAGE", "ROWS" ] }, - "rowCount": { - "type": "number", - "format": "double" + "rowCount" : { + "type" : "number", + "format" : "double" }, - "sizeInByte": { - "type": "number", - "format": "double" + "sizeInByte" : { + "type" : "number", + "format" : "double" }, - "timestamp": { - "type": "integer", - "format": "int64" + "timestamp" : { + "type" : "integer", + "format" : "int64" } } }, - "TableProfileList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableProfile" + "TableProfileList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TableProfile" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "TableProfilerConfig": { - "type": "object", - "properties": { - "excludeColumns": { - "type": "array", - "items": { - "type": "string" + "TableProfilerConfig" : { + "type" : "object", + "properties" : { + "excludeColumns" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "includeColumns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ColumnProfilerConfig" + "includeColumns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ColumnProfilerConfig" } }, - "partitioning": { - "$ref": "#/components/schemas/PartitionProfilerConfig" + "partitioning" : { + "$ref" : "#/components/schemas/PartitionProfilerConfig" + }, + "profileQuery" : { + "type" : "string" }, - "profileQuery": { - "type": "string" + "profileSample" : { + "type" : "number", + "format" : "double" }, - "profileSample": { - "type": "number", - "format": "double" + "profileSampleType" : { + "type" : "string", + "enum" : [ "PERCENTAGE", "ROWS" ] }, - "profileSampleType": { - "type": "string", - "enum": ["PERCENTAGE", "ROWS"] + "sampleDataCount" : { + "type" : "integer", + "format" : "int32" } } }, - "Tag": { - "required": ["description", "name"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Tag" : { + "required" : [ "description", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "classification" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "classification": { - "$ref": "#/components/schemas/EntityReference" + "deleted" : { + "type" : "boolean" + }, + "deprecated" : { + "type" : "boolean" }, - "deleted": { - "type": "boolean" + "description" : { + "type" : "string" }, - "deprecated": { - "type": "boolean" + "disabled" : { + "type" : "boolean" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "disabled": { - "type": "boolean" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "displayName": { - "type": "string" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "type": "string" + "fullyQualifiedName" : { + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" }, - "href": { - "type": "string", - "format": "uri" + "id" : { + "type" : "string", + "format" : "uuid" }, - "id": { - "type": "string", - "format": "uuid" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "mutuallyExclusive": { - "type": "boolean" + "mutuallyExclusive" : { + "type" : "boolean" }, - "name": { - "maxLength": 64, - "minLength": 2, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 64, + "minLength" : 2, + "pattern" : "^(?U)[\\w'\\- .&()]+$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "parent": { - "$ref": "#/components/schemas/EntityReference" + "parent" : { + "$ref" : "#/components/schemas/EntityReference" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "updatedBy": { - "type": "string" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "usageCount": { - "type": "integer", - "format": "int32" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "usageCount" : { + "type" : "integer", + "format" : "int32" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "version" : { + "type" : "number", + "format" : "double" + }, + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "TagLabel": { - "required": ["labelType", "source", "state", "tagFQN"], - "type": "object", - "properties": { - "description": { - "type": "string" + "TagLabel" : { + "required" : [ "labelType", "source", "state", "tagFQN" ], + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "labelType": { - "type": "string", - "enum": ["Manual", "Propagated", "Automated", "Derived"] + "labelType" : { + "type" : "string", + "enum" : [ "Manual", "Propagated", "Automated", "Derived" ] }, - "source": { - "type": "string", - "enum": ["Classification", "Glossary"] + "name" : { + "type" : "string" }, - "state": { - "type": "string", - "enum": ["Suggested", "Confirmed"] + "source" : { + "type" : "string", + "enum" : [ "Classification", "Glossary" ] }, - "tagFQN": { - "maxLength": 128, - "minLength": 0, - "type": "string" + "state" : { + "type" : "string", + "enum" : [ "Suggested", "Confirmed" ] + }, + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tagFQN" : { + "maxLength" : 128, + "minLength" : 0, + "type" : "string" } } }, - "TagList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" + "TagList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Tag" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "Task": { - "required": ["name"], - "type": "object", - "properties": { - "description": { - "type": "string" + "Task" : { + "required" : [ "name" ], + "type" : "object", + "properties" : { + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "downstreamTasks": { - "type": "array", - "items": { - "type": "string" + "downstreamTasks" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "endDate": { - "type": "string" + "endDate" : { + "type" : "string" }, - "fullyQualifiedName": { - "type": "string" + "fullyQualifiedName" : { + "type" : "string" }, - "name": { - "type": "string" + "name" : { + "type" : "string" }, - "sourceUrl": { - "type": "string" + "sourceUrl" : { + "type" : "string" }, - "startDate": { - "type": "string" + "startDate" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "taskSQL": { - "type": "string" + "taskSQL" : { + "type" : "string" }, - "taskType": { - "type": "string" + "taskType" : { + "type" : "string" } } }, - "TaskDetails": { - "required": ["assignees", "id", "type"], - "type": "object", - "properties": { - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "TaskDetails" : { + "required" : [ "assignees", "id", "type" ], + "type" : "object", + "properties" : { + "assignees" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "closedAt": { - "type": "integer", - "format": "int64" + "closedAt" : { + "type" : "integer", + "format" : "int64" }, - "closedBy": { - "type": "string" + "closedBy" : { + "type" : "string" }, - "id": { - "type": "integer", - "format": "int32" + "id" : { + "type" : "integer", + "format" : "int32" }, - "newValue": { - "type": "string" + "newValue" : { + "type" : "string" }, - "oldValue": { - "type": "string" + "oldValue" : { + "type" : "string" }, - "status": { - "type": "string", - "enum": ["Open", "Closed"] + "status" : { + "type" : "string", + "enum" : [ "Open", "Closed" ] }, - "suggestion": { - "type": "string" + "suggestion" : { + "type" : "string" }, - "type": { - "type": "string", - "enum": [ - "RequestDescription", - "UpdateDescription", - "RequestTag", - "UpdateTag", - "Generic" - ] + "type" : { + "type" : "string", + "enum" : [ "RequestDescription", "UpdateDescription", "RequestTag", "UpdateTag", "RequestApproval", "Generic" ] } } }, - "Team": { - "required": ["href", "id", "name"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Team" : { + "required" : [ "id", "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "childrenCount": { - "type": "integer", - "format": "int32" + "childrenCount" : { + "type" : "integer", + "format" : "int32" + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "defaultRoles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "defaultRoles" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "deleted": { - "type": "boolean" + "deleted" : { + "type" : "boolean" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "email": { - "maxLength": 127, - "minLength": 6, - "pattern": "^\\S+@\\S+\\.\\S+$", - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "extension": { - "type": "object" + "email" : { + "maxLength" : 127, + "minLength" : 6, + "pattern" : "^[\\S.!#$%&’*+/=?^_`{|}~-]+@\\S+\\.\\S+$", + "type" : "string" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "extension" : { + "type" : "object" }, - "href": { - "type": "string", - "format": "uri" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "href" : { + "type" : "string", + "format" : "uri" }, - "inheritedRoles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "id" : { + "type" : "string", + "format" : "uuid" + }, + "inheritedRoles" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "isJoinable": { - "type": "boolean" + "isJoinable" : { + "type" : "boolean" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "owns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "owns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "parents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "parents" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "policies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "policies" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "profile": { - "$ref": "#/components/schemas/Profile" + "profile" : { + "$ref" : "#/components/schemas/Profile" }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "teamType": { - "type": "string", - "enum": [ - "Group", - "Department", - "Division", - "BusinessUnit", - "Organization" - ] + "style" : { + "$ref" : "#/components/schemas/Style" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "teamType" : { + "type" : "string", + "enum" : [ "Group", "Department", "Division", "BusinessUnit", "Organization" ] }, - "updatedBy": { - "type": "string" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "userCount": { - "type": "integer", - "format": "int32" + "updatedBy" : { + "type" : "string" }, - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "userCount" : { + "type" : "integer", + "format" : "int32" + }, + "users" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "TeamHierarchy": { - "required": ["id", "name"], - "type": "object", - "properties": { - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamHierarchy" + "TeamHierarchy" : { + "required" : [ "id", "name" ], + "type" : "object", + "properties" : { + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TeamHierarchy" } }, - "displayName": { - "type": "string" + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "isJoinable": { - "type": "boolean" + "isJoinable" : { + "type" : "boolean" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "teamType": { - "type": "string", - "enum": [ - "Group", - "Department", - "Division", - "BusinessUnit", - "Organization" - ] + "teamType" : { + "type" : "string", + "enum" : [ "Group", "Department", "Division", "BusinessUnit", "Organization" ] } } }, - "TeamList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Team" + "TeamList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Team" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "TermReference": { - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "format": "uri" + "TermReference" : { + "type" : "object", + "properties" : { + "endpoint" : { + "type" : "string", + "format" : "uri" }, - "name": { - "type": "string" + "name" : { + "type" : "string" } } }, - "TestCase": { - "required": ["entityLink", "name", "testDefinition", "testSuite"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "TestCase" : { + "required" : [ "entityLink", "name", "testDefinition", "testSuite" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "deleted": { - "type": "boolean" + "deleted" : { + "type" : "boolean" }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "entityFQN": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "entityLink": { - "pattern": "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#]+>$", - "type": "string" + "entityFQN" : { + "type" : "string" }, - "extension": { - "type": "object" + "entityLink" : { + "pattern" : "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#%]+>$", + "type" : "string" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "extension" : { + "type" : "object" }, - "href": { - "type": "string", - "format": "uri" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" }, - "id": { - "type": "string", - "format": "uuid" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "parameterValues": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestCaseParameterValue" + "parameterValues" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestCaseParameterValue" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "testCaseResult": { - "$ref": "#/components/schemas/TestCaseResult" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "testDefinition": { - "$ref": "#/components/schemas/EntityReference" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "testCaseResult" : { + "$ref" : "#/components/schemas/TestCaseResult" }, - "testSuite": { - "$ref": "#/components/schemas/EntityReference" + "testDefinition" : { + "$ref" : "#/components/schemas/EntityReference" }, - "testSuites": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestSuite" + "testSuite" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "testSuites" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestSuite" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "TestCaseFailureStatus": { - "type": "object", - "properties": { - "testCaseFailureComment": { - "type": "string" + "TestCaseFailureStatus" : { + "type" : "object", + "properties" : { + "testCaseFailureComment" : { + "type" : "string" }, - "testCaseFailureReason": { - "type": "string", - "enum": [ - "FalsePositive", - "MissingData", - "Duplicates", - "OutOfBounds", - "Other" - ] + "testCaseFailureReason" : { + "type" : "string", + "enum" : [ "FalsePositive", "MissingData", "Duplicates", "OutOfBounds", "Other" ] }, - "testCaseFailureStatusType": { - "type": "string", - "enum": ["Ack", "New", "Resolved"] + "testCaseFailureStatusType" : { + "type" : "string", + "enum" : [ "Ack", "New", "Resolved" ] }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" } } }, - "TestCaseList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestCase" + "TestCaseList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestCase" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "TestCaseParameter": { - "type": "object", - "properties": { - "dataType": { - "type": "string", - "enum": [ - "NUMBER", - "INT", - "FLOAT", - "DOUBLE", - "DECIMAL", - "TIMESTAMP", - "TIME", - "DATE", - "DATETIME", - "ARRAY", - "MAP", - "SET", - "STRING", - "BOOLEAN" - ] + "TestCaseParameter" : { + "type" : "object", + "properties" : { + "dataType" : { + "type" : "string", + "enum" : [ "NUMBER", "INT", "FLOAT", "DOUBLE", "DECIMAL", "TIMESTAMP", "TIME", "DATE", "DATETIME", "ARRAY", "MAP", "SET", "STRING", "BOOLEAN" ] }, - "description": { - "type": "string" + "description" : { + "type" : "string" }, - "displayName": { - "type": "string" + "displayName" : { + "type" : "string" }, - "name": { - "type": "string" + "name" : { + "type" : "string" }, - "optionValues": { - "type": "array", - "items": { - "type": "object" + "optionValues" : { + "type" : "array", + "items" : { + "type" : "object" } }, - "required": { - "type": "boolean" + "required" : { + "type" : "boolean" } } }, - "TestCaseParameterValue": { - "type": "object", - "properties": { - "name": { - "type": "string" + "TestCaseParameterValue" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" }, - "value": { - "type": "string" + "value" : { + "type" : "string" } } }, - "TestCaseResult": { - "type": "object", - "properties": { - "result": { - "type": "string" + "TestCaseResult" : { + "type" : "object", + "properties" : { + "result" : { + "type" : "string" }, - "sampleData": { - "type": "string" + "sampleData" : { + "type" : "string" }, - "testCaseFailureStatus": { - "$ref": "#/components/schemas/TestCaseFailureStatus" + "testCaseFailureStatus" : { + "$ref" : "#/components/schemas/TestCaseFailureStatus" }, - "testCaseStatus": { - "type": "string", - "enum": ["Success", "Failed", "Aborted"] + "testCaseStatus" : { + "type" : "string", + "enum" : [ "Success", "Failed", "Aborted" ] }, - "testResultValue": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestResultValue" + "testResultValue" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestResultValue" } }, - "timestamp": { - "type": "integer", - "format": "int64" + "timestamp" : { + "type" : "integer", + "format" : "int64" } } }, - "TestCaseResultList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestCaseResult" + "TestCaseResultList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestCaseResult" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "TestConnectionResult": { - "required": ["steps"], - "type": "object", - "properties": { - "lastUpdatedAt": { - "type": "integer", - "format": "int64" + "TestConnectionResult" : { + "required" : [ "steps" ], + "type" : "object", + "properties" : { + "lastUpdatedAt" : { + "type" : "integer", + "format" : "int64" }, - "status": { - "type": "string", - "enum": ["Successful", "Failed", "Running"] + "status" : { + "type" : "string", + "enum" : [ "Successful", "Failed", "Running" ] }, - "steps": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestConnectionStepResult" + "steps" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestConnectionStepResult" } } } }, - "TestConnectionStepResult": { - "required": ["mandatory", "name", "passed"], - "type": "object", - "properties": { - "errorLog": { - "type": "string" + "TestConnectionStepResult" : { + "required" : [ "mandatory", "name", "passed" ], + "type" : "object", + "properties" : { + "errorLog" : { + "type" : "string" + }, + "mandatory" : { + "type" : "boolean" + }, + "message" : { + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "passed" : { + "type" : "boolean" + } + } + }, + "TestDefinition" : { + "required" : [ "description", "name", "testPlatforms" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "domain" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "entityType" : { + "type" : "string", + "enum" : [ "TABLE", "COLUMN" ] + }, + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" + }, + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" + }, + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" + }, + "owner" : { + "$ref" : "#/components/schemas/EntityReference" + }, + "parameterDefinition" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestCaseParameter" + } + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] + }, + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "style" : { + "$ref" : "#/components/schemas/Style" }, - "mandatory": { - "type": "boolean" + "supportedDataTypes" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "NUMBER", "TINYINT", "SMALLINT", "INT", "BIGINT", "BYTEINT", "BYTES", "FLOAT", "DOUBLE", "DECIMAL", "NUMERIC", "TIMESTAMP", "TIMESTAMPZ", "TIME", "DATE", "DATETIME", "INTERVAL", "STRING", "MEDIUMTEXT", "TEXT", "CHAR", "LONG", "VARCHAR", "BOOLEAN", "BINARY", "VARBINARY", "ARRAY", "BLOB", "LONGBLOB", "MEDIUMBLOB", "MAP", "STRUCT", "UNION", "SET", "GEOGRAPHY", "ENUM", "JSON", "UUID", "VARIANT", "GEOMETRY", "BYTEA", "AGGREGATEFUNCTION", "ERROR", "FIXED", "RECORD", "NULL", "SUPER", "HLLSKETCH", "PG_LSN", "PG_SNAPSHOT", "TSQUERY", "TXID_SNAPSHOT", "XML", "MACADDR", "TSVECTOR", "UNKNOWN", "CIDR", "INET", "CLOB", "ROWID", "LOWCARDINALITY", "YEAR", "POINT", "POLYGON", "TUPLE", "SPATIAL", "TABLE", "NTEXT", "IMAGE", "IPV4", "IPV6", "DATETIMERANGE" ] + } + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } + }, + "testPlatforms" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "OpenMetadata", "GreatExpectations", "DBT", "Deequ", "Soda", "Other" ] + } + }, + "updatedAt" : { + "type" : "integer", + "format" : "int64" + }, + "updatedBy" : { + "type" : "string" + }, + "version" : { + "type" : "number", + "format" : "double" }, - "message": { - "type": "string" + "votes" : { + "$ref" : "#/components/schemas/Votes" + } + } + }, + "TestDefinitionList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestDefinition" + } }, - "name": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" + } }, - "passed": { - "type": "boolean" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } - }, - "TestDefinition": { - "required": ["description", "name", "testPlatforms"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" - }, - "deleted": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "entityType": { - "type": "string", - "enum": ["TABLE", "COLUMN"] - }, - "extension": { - "type": "object" - }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" - } - }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "href": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/EntityReference" - }, - "parameterDefinition": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestCaseParameter" - } - }, - "provider": { - "type": "string", - "enum": ["system", "user"] - }, - "supportedDataTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "NUMBER", - "TINYINT", - "SMALLINT", - "INT", - "BIGINT", - "BYTEINT", - "BYTES", - "FLOAT", - "DOUBLE", - "DECIMAL", - "NUMERIC", - "TIMESTAMP", - "TIMESTAMPZ", - "TIME", - "DATE", - "DATETIME", - "INTERVAL", - "STRING", - "MEDIUMTEXT", - "TEXT", - "CHAR", - "LONG", - "VARCHAR", - "BOOLEAN", - "BINARY", - "VARBINARY", - "ARRAY", - "BLOB", - "LONGBLOB", - "MEDIUMBLOB", - "MAP", - "STRUCT", - "UNION", - "SET", - "GEOGRAPHY", - "ENUM", - "JSON", - "UUID", - "VARIANT", - "GEOMETRY", - "BYTEA", - "AGGREGATEFUNCTION", - "ERROR", - "FIXED", - "RECORD", - "NULL", - "SUPER", - "HLLSKETCH", - "PG_LSN", - "PG_SNAPSHOT", - "TSQUERY", - "TXID_SNAPSHOT", - "XML", - "MACADDR", - "TSVECTOR", - "UNKNOWN", - "CIDR", - "INET", - "CLOB", - "ROWID", - "LOWCARDINALITY", - "YEAR", - "POINT", - "POLYGON", - "TUPLE", - "SPATIAL", - "TABLE" - ] - } - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" - } - }, - "testPlatforms": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "OpenMetadata", - "GreatExpectations", - "DBT", - "Deequ", - "Soda", - "Other" - ] - } - }, - "updatedAt": { - "type": "integer", - "format": "int64" - }, - "updatedBy": { - "type": "string" - }, - "version": { - "type": "number", - "format": "double" - }, - "votes": { - "$ref": "#/components/schemas/Votes" - } - } - }, - "TestDefinitionList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestDefinition" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - }, - "paging": { - "$ref": "#/components/schemas/Paging" - } - } - }, - "TestResultValue": { - "type": "object", - "properties": { - "name": { - "type": "string" + }, + "TestResultValue" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" }, - "value": { - "type": "string" + "value" : { + "type" : "string" } } }, - "TestSuite": { - "required": ["name"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "TestSuite" : { + "required" : [ "name" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "connection": { - "$ref": "#/components/schemas/TestSuiteConnection" + "connection" : { + "$ref" : "#/components/schemas/TestSuiteConnection" }, - "deleted": { - "type": "boolean" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" }, - "description": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "displayName": { - "type": "string" + "executable" : { + "type" : "boolean" }, - "executable": { - "type": "boolean" + "executableEntityReference" : { + "$ref" : "#/components/schemas/EntityReference" }, - "executableEntityReference": { - "$ref": "#/components/schemas/EntityReference" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "extension": { - "type": "object" + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" + }, + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "href": { - "type": "string", - "format": "uri" + "name" : { + "maxLength" : 256, + "minLength" : 1, + "type" : "string" }, - "id": { - "type": "string", - "format": "uuid" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "name": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "pipelines" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "serviceType" : { + "type" : "string", + "enum" : [ "TestSuite" ] + }, + "style" : { + "$ref" : "#/components/schemas/Style" }, - "serviceType": { - "type": "string", - "enum": ["TestSuite"] + "summary" : { + "$ref" : "#/components/schemas/TestSummary" }, - "summary": { - "$ref": "#/components/schemas/TestSummary" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" + } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "testCaseResultSummary" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ResultSummary" } }, - "testConnectionResult": { - "$ref": "#/components/schemas/TestConnectionResult" + "testConnectionResult" : { + "$ref" : "#/components/schemas/TestConnectionResult" }, - "tests": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "tests" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "TestSuiteConnection": { - "type": "object", - "properties": { - "config": { - "type": "object" + "TestSuiteConnection" : { + "type" : "object", + "properties" : { + "config" : { + "type" : "object" } } }, - "TestSuiteList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TestSuite" + "TestSuiteList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TestSuite" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "TestSummary": { - "type": "object", - "properties": { - "aborted": { - "type": "integer", - "format": "int32" + "TestSummary" : { + "type" : "object", + "properties" : { + "aborted" : { + "type" : "integer", + "format" : "int32" }, - "failed": { - "type": "integer", - "format": "int32" + "failed" : { + "type" : "integer", + "format" : "int32" }, - "success": { - "type": "integer", - "format": "int32" + "success" : { + "type" : "integer", + "format" : "int32" }, - "total": { - "type": "integer", - "format": "int32" + "total" : { + "type" : "integer", + "format" : "int32" } } }, - "Text": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "Text" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" } } }, - "Thread": { - "required": ["about", "id", "message"], - "type": "object", - "properties": { - "about": { - "pattern": "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#]+>$", - "type": "string" + "Thread" : { + "required" : [ "about", "id", "message" ], + "type" : "object", + "properties" : { + "about" : { + "pattern" : "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#%]+>$", + "type" : "string" }, - "addressedTo": { - "pattern": "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#]+>$", - "type": "string" + "addressedTo" : { + "pattern" : "^(?U)<#E::\\w+::[\\w'\\- .&/:+\"\\\\()$#%]+>$", + "type" : "string" }, - "announcement": { - "$ref": "#/components/schemas/AnnouncementDetails" + "announcement" : { + "$ref" : "#/components/schemas/AnnouncementDetails" }, - "createdBy": { - "type": "string" + "createdBy" : { + "type" : "string" }, - "entityId": { - "type": "string", - "format": "uuid" + "entityId" : { + "type" : "string", + "format" : "uuid" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "message": { - "type": "string" + "message" : { + "type" : "string" }, - "posts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Post" + "posts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Post" } }, - "postsCount": { - "type": "integer", - "format": "int32" + "postsCount" : { + "type" : "integer", + "format" : "int32" }, - "reactions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Reaction" + "reactions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Reaction" } }, - "resolved": { - "type": "boolean" + "resolved" : { + "type" : "boolean" }, - "task": { - "$ref": "#/components/schemas/TaskDetails" + "task" : { + "$ref" : "#/components/schemas/TaskDetails" }, - "threadTs": { - "type": "integer", - "format": "int64" + "threadTs" : { + "type" : "integer", + "format" : "int64" }, - "type": { - "type": "string", - "enum": ["Conversation", "Task", "Announcement"] + "type" : { + "type" : "string", + "enum" : [ "Conversation", "Task", "Announcement" ] }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" } } }, - "ThreadCount": { - "required": ["counts", "totalCount"], - "type": "object", - "properties": { - "counts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityLinkThreadCount" + "ThreadCount" : { + "required" : [ "counts", "totalCount" ], + "type" : "object", + "properties" : { + "counts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityLinkThreadCount" } }, - "totalCount": { - "type": "integer", - "format": "int32" + "totalCount" : { + "type" : "integer", + "format" : "int32" } } }, - "ThreadList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Thread" + "ThreadList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Thread" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "TimeValue": { - "type": "object", - "properties": { - "days": { - "type": "integer", - "format": "int64" + "TimeValue" : { + "type" : "object", + "properties" : { + "days" : { + "type" : "integer", + "format" : "int64" }, - "daysFrac": { - "type": "number", - "format": "double" + "daysFrac" : { + "type" : "number", + "format" : "double" }, - "hours": { - "type": "integer", - "format": "int64" + "hours" : { + "type" : "integer", + "format" : "int64" }, - "hoursFrac": { - "type": "number", - "format": "double" + "hoursFrac" : { + "type" : "number", + "format" : "double" }, - "micros": { - "type": "integer", - "format": "int64" + "micros" : { + "type" : "integer", + "format" : "int64" }, - "microsFrac": { - "type": "number", - "format": "double" + "microsFrac" : { + "type" : "number", + "format" : "double" }, - "millis": { - "type": "integer", - "format": "int64" + "millis" : { + "type" : "integer", + "format" : "int64" }, - "millisFrac": { - "type": "number", - "format": "double" + "millisFrac" : { + "type" : "number", + "format" : "double" }, - "minutes": { - "type": "integer", - "format": "int64" + "minutes" : { + "type" : "integer", + "format" : "int64" }, - "minutesFrac": { - "type": "number", - "format": "double" + "minutesFrac" : { + "type" : "number", + "format" : "double" }, - "nanos": { - "type": "integer", - "format": "int64" + "nanos" : { + "type" : "integer", + "format" : "int64" }, - "seconds": { - "type": "integer", - "format": "int64" + "seconds" : { + "type" : "integer", + "format" : "int64" }, - "secondsFrac": { - "type": "number", - "format": "double" + "secondsFrac" : { + "type" : "number", + "format" : "double" }, - "stringRep": { - "type": "string" + "stringRep" : { + "type" : "string" } } }, - "ToXContentFragment": { - "type": "object", - "properties": { - "fragment": { - "type": "boolean" + "ToXContentFragment" : { + "type" : "object", + "properties" : { + "fragment" : { + "type" : "boolean" } } }, - "TokenRefreshRequest": { - "required": ["refreshToken"], - "type": "object", - "properties": { - "refreshToken": { - "type": "string" + "TokenRefreshRequest" : { + "required" : [ "refreshToken" ], + "type" : "object", + "properties" : { + "refreshToken" : { + "type" : "string" } } }, - "Topic": { - "required": ["id", "name", "partitions", "service"], - "type": "object", - "properties": { - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "Topic" : { + "required" : [ "id", "name", "partitions", "service" ], + "type" : "object", + "properties" : { + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "cleanupPolicies" : { + "type" : "array", + "items" : { + "type" : "string", + "enum" : [ "delete", "compact" ] + } }, - "cleanupPolicies": { - "type": "array", - "items": { - "type": "string", - "enum": ["delete", "compact"] + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "deleted": { - "type": "boolean" + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "extension": { - "type": "object" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" }, - "href": { - "type": "string", - "format": "uri" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "id": { - "type": "string", - "format": "uuid" + "maximumMessageSize" : { + "type" : "integer", + "format" : "int32" }, - "maximumMessageSize": { - "type": "integer", - "format": "int32" + "messageSchema" : { + "$ref" : "#/components/schemas/MessageSchema" }, - "messageSchema": { - "$ref": "#/components/schemas/MessageSchema" + "minimumInSyncReplicas" : { + "type" : "integer", + "format" : "int32" }, - "minimumInSyncReplicas": { - "type": "integer", - "format": "int32" + "name" : { + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^(?U)[\\w'\\- .&()%]+$", + "type" : "string" }, - "name": { - "maxLength": 128, - "minLength": 1, - "pattern": "^(?U)[\\w'\\- .&()]+$", - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "partitions" : { + "type" : "integer", + "format" : "int32" }, - "partitions": { - "type": "integer", - "format": "int32" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "replicationFactor" : { + "type" : "integer", + "format" : "int32" }, - "replicationFactor": { - "type": "integer", - "format": "int32" + "retentionSize" : { + "type" : "number", + "format" : "double" }, - "retentionSize": { - "type": "number", - "format": "double" + "retentionTime" : { + "type" : "number", + "format" : "double" }, - "retentionTime": { - "type": "number", - "format": "double" + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "sampleData" : { + "$ref" : "#/components/schemas/TopicSampleData" }, - "sampleData": { - "$ref": "#/components/schemas/TopicSampleData" + "service" : { + "$ref" : "#/components/schemas/EntityReference" }, - "service": { - "$ref": "#/components/schemas/EntityReference" + "serviceType" : { + "type" : "string", + "enum" : [ "Kafka", "Redpanda", "Kinesis", "CustomMessaging" ] }, - "serviceType": { - "type": "string", - "enum": ["Kafka", "Redpanda", "Kinesis", "CustomMessaging"] + "sourceUrl" : { + "type" : "string" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "topicConfig": { - "$ref": "#/components/schemas/TopicConfig" + "topicConfig" : { + "$ref" : "#/components/schemas/TopicConfig" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "TopicConfig": { - "type": "object" + "TopicConfig" : { + "type" : "object" }, - "TopicList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Topic" + "TopicList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Topic" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "TopicSampleData": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "string" + "TopicSampleData" : { + "type" : "object", + "properties" : { + "messages" : { + "type" : "array", + "items" : { + "type" : "string" } } } }, - "TotalHits": { - "type": "object", - "properties": { - "relation": { - "type": "string", - "enum": ["EQUAL_TO", "GREATER_THAN_OR_EQUAL_TO"] + "TotalHits" : { + "type" : "object", + "properties" : { + "relation" : { + "type" : "string", + "enum" : [ "EQUAL_TO", "GREATER_THAN_OR_EQUAL_TO" ] }, - "value": { - "type": "integer", - "format": "int64" + "value" : { + "type" : "integer", + "format" : "int64" } } }, - "TriggerConfig": { - "required": ["triggerType"], - "type": "object", - "properties": { - "cronExpression": { - "type": "string" + "TriggerConfig" : { + "required" : [ "triggerType" ], + "type" : "object", + "properties" : { + "cronExpression" : { + "type" : "string" }, - "scheduleInfo": { - "type": "string", - "enum": ["Daily", "Weekly", "Monthly", "Custom"] + "scheduleInfo" : { + "type" : "string", + "enum" : [ "Daily", "Weekly", "Monthly", "Custom" ] }, - "triggerType": { - "type": "string", - "enum": ["RealTime", "Scheduled"] + "triggerType" : { + "type" : "string", + "enum" : [ "RealTime", "Scheduled" ] } } }, - "Type": { - "required": ["description", "name"], - "type": "object", - "properties": { - "category": { - "type": "string", - "enum": ["field", "entity"] + "Type" : { + "required" : [ "description", "name" ], + "type" : "object", + "properties" : { + "category" : { + "type" : "string", + "enum" : [ "field", "entity" ] + }, + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" }, - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "customProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/CustomProperty" + } }, - "customProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomProperty" + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "deleted": { - "type": "boolean" + "deleted" : { + "type" : "boolean" + }, + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "extension": { - "type": "object" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" + }, + "href" : { + "type" : "string", + "format" : "uri" + }, + "id" : { + "type" : "string", + "format" : "uuid" }, - "href": { - "type": "string", - "format": "uri" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "id": { - "type": "string", - "format": "uuid" + "name" : { + "pattern" : "^(?U)[\\w]+$", + "type" : "string" }, - "name": { - "pattern": "^(?U)[\\w]+$", - "type": "string" + "nameSpace" : { + "type" : "string" }, - "nameSpace": { - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "schema" : { + "type" : "string" }, - "schema": { - "type": "string" + "style" : { + "$ref" : "#/components/schemas/Style" }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "TypeList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Type" + "TypeList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Type" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "UsageDetails": { - "required": ["dailyStats", "date"], - "type": "object", - "properties": { - "dailyStats": { - "$ref": "#/components/schemas/UsageStats" + "UsageDetails" : { + "required" : [ "dailyStats", "date" ], + "type" : "object", + "properties" : { + "dailyStats" : { + "$ref" : "#/components/schemas/UsageStats" }, - "date": { - "type": "string" + "date" : { + "type" : "string" }, - "monthlyStats": { - "$ref": "#/components/schemas/UsageStats" + "monthlyStats" : { + "$ref" : "#/components/schemas/UsageStats" }, - "weeklyStats": { - "$ref": "#/components/schemas/UsageStats" + "weeklyStats" : { + "$ref" : "#/components/schemas/UsageStats" } } }, - "UsageStats": { - "required": ["count"], - "type": "object", - "properties": { - "count": { - "type": "integer", - "format": "int32" + "UsageStats" : { + "required" : [ "count" ], + "type" : "object", + "properties" : { + "count" : { + "type" : "integer", + "format" : "int32" }, - "percentileRank": { - "type": "number", - "format": "double" + "percentileRank" : { + "type" : "number", + "format" : "double" } } }, - "User": { - "required": ["email", "href", "id", "name"], - "type": "object", - "properties": { - "authenticationMechanism": { - "$ref": "#/components/schemas/AuthenticationMechanism" + "User" : { + "required" : [ "email", "id", "name" ], + "type" : "object", + "properties" : { + "authenticationMechanism" : { + "$ref" : "#/components/schemas/AuthenticationMechanism" + }, + "changeDescription" : { + "$ref" : "#/components/schemas/ChangeDescription" + }, + "children" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "dataProducts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "defaultPersona" : { + "$ref" : "#/components/schemas/EntityReference" }, - "changeDescription": { - "$ref": "#/components/schemas/ChangeDescription" + "deleted" : { + "type" : "boolean" }, - "deleted": { - "type": "boolean" + "description" : { + "type" : "string" }, - "description": { - "type": "string" + "displayName" : { + "type" : "string" }, - "displayName": { - "type": "string" + "domain" : { + "$ref" : "#/components/schemas/EntityReference" }, - "email": { - "maxLength": 127, - "minLength": 6, - "pattern": "^\\S+@\\S+\\.\\S+$", - "type": "string" + "email" : { + "maxLength" : 127, + "minLength" : 6, + "pattern" : "^[\\S.!#$%&’*+/=?^_`{|}~-]+@\\S+\\.\\S+$", + "type" : "string" }, - "extension": { - "type": "object" + "experts" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } + }, + "extension" : { + "type" : "object" }, - "followers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "followers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "follows": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "follows" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "fullyQualifiedName": { - "maxLength": 256, - "minLength": 1, - "type": "string" + "fullyQualifiedName" : { + "maxLength" : 3072, + "minLength" : 1, + "type" : "string" }, - "href": { - "type": "string", - "format": "uri" + "href" : { + "type" : "string", + "format" : "uri" }, - "id": { - "type": "string", - "format": "uuid" + "id" : { + "type" : "string", + "format" : "uuid" }, - "inheritedRoles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "inheritedRoles" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "isAdmin": { - "type": "boolean" + "isAdmin" : { + "type" : "boolean" + }, + "isBot" : { + "type" : "boolean" + }, + "isEmailVerified" : { + "type" : "boolean" }, - "isBot": { - "type": "boolean" + "lifeCycle" : { + "$ref" : "#/components/schemas/LifeCycle" }, - "isEmailVerified": { - "type": "boolean" + "name" : { + "maxLength" : 64, + "minLength" : 1, + "pattern" : "^(?U)[\\w\\-.]+$", + "type" : "string" }, - "name": { - "maxLength": 64, - "minLength": 1, - "pattern": "^(?U)[\\w\\-.]+$", - "type": "string" + "owner" : { + "$ref" : "#/components/schemas/EntityReference" }, - "owner": { - "$ref": "#/components/schemas/EntityReference" + "owns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "owns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "personas" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "profile": { - "$ref": "#/components/schemas/Profile" + "profile" : { + "$ref" : "#/components/schemas/Profile" + }, + "provider" : { + "type" : "string", + "enum" : [ "system", "user" ] }, - "provider": { - "type": "string", - "enum": ["system", "user"] + "reviewers" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" + } }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "roles" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagLabel" + "style" : { + "$ref" : "#/components/schemas/Style" + }, + "tags" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/TagLabel" } }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "teams" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "timezone": { - "type": "string" + "timezone" : { + "type" : "string" }, - "updatedAt": { - "type": "integer", - "format": "int64" + "updatedAt" : { + "type" : "integer", + "format" : "int64" }, - "updatedBy": { - "type": "string" + "updatedBy" : { + "type" : "string" }, - "version": { - "type": "number", - "format": "double" + "version" : { + "type" : "number", + "format" : "double" }, - "votes": { - "$ref": "#/components/schemas/Votes" + "votes" : { + "$ref" : "#/components/schemas/Votes" } } }, - "UserList": { - "required": ["data"], - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" + "UserList" : { + "required" : [ "data" ], + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/User" } }, - "errors": { - "type": "array", - "items": { - "type": "string" + "errors" : { + "type" : "array", + "items" : { + "type" : "string" } }, - "paging": { - "$ref": "#/components/schemas/Paging" + "paging" : { + "$ref" : "#/components/schemas/Paging" } } }, - "VoteRequest": { - "type": "object", - "properties": { - "updatedVoteType": { - "type": "string", - "enum": ["votedUp", "votedDown", "unVoted"] + "VoteRequest" : { + "type" : "object", + "properties" : { + "updatedVoteType" : { + "type" : "string", + "enum" : [ "votedUp", "votedDown", "unVoted" ] } } }, - "Votes": { - "type": "object", - "properties": { - "downVoters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "Votes" : { + "type" : "object", + "properties" : { + "downVoters" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "downVotes": { - "type": "integer", - "format": "int32" + "downVotes" : { + "type" : "integer", + "format" : "int32" }, - "upVoters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EntityReference" + "upVoters" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/EntityReference" } }, - "upVotes": { - "type": "integer", - "format": "int32" + "upVotes" : { + "type" : "integer", + "format" : "int32" } } }, - "Webhook": { - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "format": "uri" + "Webhook" : { + "type" : "object", + "properties" : { + "endpoint" : { + "type" : "string", + "format" : "uri" }, - "secretKey": { - "type": "string" + "secretKey" : { + "type" : "string" }, - "sendToAdmins": { - "type": "boolean" + "sendToAdmins" : { + "type" : "boolean" }, - "sendToFollowers": { - "type": "boolean" + "sendToFollowers" : { + "type" : "boolean" }, - "sendToOwners": { - "type": "boolean" + "sendToOwners" : { + "type" : "boolean" } } } } } -} +} \ No newline at end of file diff --git a/utils/SideNavUtils.ts b/utils/SideNavUtils.ts new file mode 100644 index 000000000..7359fcfcd --- /dev/null +++ b/utils/SideNavUtils.ts @@ -0,0 +1,14 @@ +import { HOW_TO_GUIDES_MENU_ITEM_KEY } from "../constants/SideNav.constants"; +import { MenuItem } from "../interface/common.interface"; +import { getCategoryByIndex } from "../lib/utils"; + +export const getSideNavItems = (item: MenuItem, path) => { + if (item?.menu_key === HOW_TO_GUIDES_MENU_ITEM_KEY) { + const subCategory = getCategoryByIndex(path, 3); + return ( + item?.children.filter((child) => child.menu_key === subCategory) ?? [] + ); + } + + return item?.children ?? []; +};