diff --git a/_docs/master/api.html b/_docs/master/api.html index c96928f667..d94a040518 100644 --- a/_docs/master/api.html +++ b/_docs/master/api.html @@ -113,6 +113,105 @@ }, "required" : [ "zoom", "x", "y", "lat-field", "lon-field" ] }, + "gsheets.response" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "error" : { + "type" : "boolean" + }, + "message" : { + "type" : "string", + "minLength" : 1 + } + }, + "required" : [ "error", "message" ] + }, { + "oneOf" : [ { + "type" : "object", + "properties" : { } + }, { + "type" : "object", + "properties" : { + "created_at" : { + "type" : "integer", + "minimum" : 1 + }, + "created_by_id" : { + "type" : "integer", + "minimum" : 1 + }, + "db_id" : { + "type" : "integer", + "minimum" : 1 + }, + "sync_started_at" : { + "type" : "integer", + "minimum" : 1 + }, + "url" : { + "type" : "string", + "minLength" : 1 + } + }, + "required" : [ "url", "created_at", "sync_started_at", "created_by_id", "db_id" ] + }, { + "type" : "object", + "properties" : { + "created_at" : { + "type" : "integer", + "minimum" : 1 + }, + "created_by_id" : { + "type" : "integer", + "minimum" : 1 + }, + "db_id" : { + "type" : "integer", + "minimum" : 1 + }, + "last_sync_at" : { + "type" : "integer", + "minimum" : 1 + }, + "next_sync_at" : { + "type" : "integer", + "minimum" : 1 + }, + "url" : { + "type" : "string", + "minLength" : 1 + } + }, + "required" : [ "url", "created_at", "last_sync_at", "next_sync_at", "created_by_id", "db_id" ] + }, { + "type" : "object", + "properties" : { + "created_at" : { + "type" : "integer", + "minimum" : 1 + }, + "created_by_id" : { + "type" : "integer", + "minimum" : 1 + }, + "db_id" : { + "type" : "integer", + "minimum" : 1 + }, + "error_message" : { + "type" : "string", + "minLength" : 1 + }, + "url" : { + "type" : "string", + "minLength" : 1 + } + }, + "required" : [ "url", "created_at", "error_message", "created_by_id", "db_id" ] + } ] + } ] + }, "metabase-enterprise.metabot-v3.client.schema.message" : { "allOf" : [ { "type" : "object", @@ -198,10 +297,126 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.answer-sources-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "metrics" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.full-metric" + } + }, + "models" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.full-table" + } + } + }, + "required" : [ "metrics", "models" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.basic-metric" : { + "type" : "object", + "properties" : { + "default_time_dimension_field_id" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "type" : { + "const" : "metric" + } + }, + "required" : [ "id", "type", "name" ] + }, + "metabase-enterprise.metabot-v3.tools.api.basic-table" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "fields" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "id" : { + "type" : "integer" + }, + "metrics" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.basic-metric" + } + }, + "name" : { + "type" : "string" + }, + "type" : { + "type" : "string", + "enum" : [ "model", "table" ] + } + }, + "required" : [ "id", "type", "name", "fields" ] + }, "metabase-enterprise.metabot-v3.tools.api.bucket" : { "type" : "string", "enum" : [ "millisecond", "second", "minute", "hour", "day", "week", "month", "quarter", "year", "second-of-minute", "minute-of-hour", "hour-of-day", "day-of-week", "day-of-month", "day-of-year", "week-of-year", "month-of-year", "quarter-of-year", "year-of-era" ] }, + "metabase-enterprise.metabot-v3.tools.api.column" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "field_id" : { + "type" : "string" + }, + "field_values" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.field-values" + }, + "name" : { + "type" : "string" + }, + "semantic_type" : { + "type" : "string" + }, + "type" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.field-type" + } + }, + "required" : [ "field_id", "name" ] + }, + "metabase-enterprise.metabot-v3.tools.api.columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.column" + } + }, + "metabase-enterprise.metabot-v3.tools.api.count" : { + "type" : "integer" + }, "metabase-enterprise.metabot-v3.tools.api.create-dashboard-subscription-arguments" : { "allOf" : [ { "type" : "object", @@ -364,6 +579,28 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.field-type" : { + "type" : "string", + "enum" : [ "boolean", "date", "datetime", "time", "number", "string" ] + }, + "metabase-enterprise.metabot-v3.tools.api.field-values" : { + "anyOf" : [ { + "type" : "array", + "items" : { + "type" : "boolean" + } + }, { + "type" : "array", + "items" : { + "type" : "number" + } + }, { + "type" : "array", + "items" : { + "type" : "string" + } + } ] + }, "metabase-enterprise.metabot-v3.tools.api.field-values-arguments" : { "allOf" : [ { "type" : "object", @@ -388,6 +625,38 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.field-values-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "field_id" : { + "type" : "string" + }, + "statistics" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.statistics" + }, + "values" : { + "type" : "array", + "items" : { } + } + }, + "required" : [ "field_id" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.filter" : { "anyOf" : [ { "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.existence-filter" @@ -467,6 +736,86 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.filtering-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "query" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Query" + }, + "query_id" : { + "type" : "string" + }, + "result_columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.column" + } + }, + "type" : { + "const" : "query" + } + }, + "required" : [ "type", "query_id", "query", "result_columns" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.find-metric-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "default_time_dimension_field_id" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.column" + }, + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "queryable_dimensions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.column" + } + }, + "type" : { + "const" : "metric" + } + }, + "required" : [ "id", "type", "name", "queryable_dimensions" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.find-outliers-arguments" : { "allOf" : [ { "type" : "object", @@ -536,24 +885,115 @@ "properties" : { } } ] }, - "metabase-enterprise.metabot-v3.tools.api.generate-insights-arguments" : { - "type" : "object", - "properties" : { - "for" : { - "anyOf" : [ { - "type" : "object", - "properties" : { - "metric_id" : { - "type" : "integer" - } - }, - "required" : [ "metric_id" ] - }, { - "type" : "object", - "properties" : { - "table_id" : { - "type" : "string" - } + "metabase-enterprise.metabot-v3.tools.api.find-outliers-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "dimension" : { }, + "value" : { + "anyOf" : [ { + "type" : "integer" + }, { + "type" : "number" + } ] + } + }, + "required" : [ "dimension", "value" ] + } + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.full-metric" : { + "type" : "object", + "properties" : { + "default_time_dimension_field_id" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "queryable_dimensions" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "type" : { + "const" : "metric" + } + }, + "required" : [ "id", "type", "name" ] + }, + "metabase-enterprise.metabot-v3.tools.api.full-table" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "fields" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "id" : { + "type" : "integer" + }, + "metrics" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.basic-metric" + } + }, + "name" : { + "type" : "string" + }, + "queryable_foreign_key_tables" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.basic-table" + } + }, + "type" : { + "type" : "string", + "enum" : [ "model", "table" ] + } + }, + "required" : [ "id", "type", "name", "fields" ] + }, + "metabase-enterprise.metabot-v3.tools.api.generate-insights-arguments" : { + "type" : "object", + "properties" : { + "for" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "metric_id" : { + "type" : "integer" + } + }, + "required" : [ "metric_id" ] + }, { + "type" : "object", + "properties" : { + "table_id" : { + "type" : "string" + } }, "required" : [ "table_id" ] }, { @@ -578,6 +1018,74 @@ }, "required" : [ "for" ] }, + "metabase-enterprise.metabot-v3.tools.api.get-current-user-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "email_address" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "type" : { + "const" : "user" + } + }, + "required" : [ "id", "type", "name", "email_address" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.get-dashboard-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "type" : { + "const" : "dashboard" + } + }, + "required" : [ "id", "type", "name" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.get-metric-details-arguments" : { "allOf" : [ { "type" : "object", @@ -604,6 +1112,60 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.get-metric-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.full-metric" + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.get-query-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "query" : { + "type" : "object", + "properties" : { } + }, + "query_id" : { + "type" : "string" + }, + "result_columns" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "type" : { + "const" : "query" + } + }, + "required" : [ "type", "query_id", "query", "result_columns" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.get-report-details-arguments" : { "allOf" : [ { "type" : "object", @@ -626,6 +1188,43 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.get-report-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "result_columns" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "type" : { + "const" : "question" + } + }, + "required" : [ "id", "type", "name", "result_columns" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.get-table-details-arguments" : { "allOf" : [ { "type" : "object", @@ -662,6 +1261,25 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.get-table-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.full-table" + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.group-by" : { "allOf" : [ { "type" : "object", @@ -705,6 +1323,9 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.proportion" : { + "type" : "number" + }, "metabase-enterprise.metabot-v3.tools.api.query-metric-arguments" : { "allOf" : [ { "type" : "object", @@ -788,6 +1409,59 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.statistics" : { + "type" : "object", + "properties" : { + "values" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.field-values" + }, + "min" : { + "type" : "number" + }, + "percent_url" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + }, + "average_length" : { + "type" : "number" + }, + "earliest" : { + "type" : "string" + }, + "q1" : { + "type" : "number" + }, + "max" : { + "type" : "number" + }, + "distinct_count" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.count" + }, + "percent_state" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + }, + "percent_null" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + }, + "avg" : { + "type" : "number" + }, + "sd" : { + "type" : "number" + }, + "percent_email" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + }, + "latest" : { + "type" : "string" + }, + "q3" : { + "type" : "number" + }, + "percent_json" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + } + } + }, "metabase-enterprise.metabot-v3.tools.api.string-filter" : { "allOf" : [ { "type" : "object", @@ -926,154 +1600,15 @@ }, "required" : [ "conversation_id" ] }, - "metabase.analyze.fingerprint.schema.Fingerprint" : { - "type" : "object", - "properties" : { - "experimental" : { - "type" : "object", - "properties" : { } - }, - "global" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.GlobalFingerprint" - }, - "type" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.TypeSpecificFingerprint" - } - } - }, - "metabase.analyze.fingerprint.schema.GlobalFingerprint" : { - "type" : "object", - "properties" : { - "distinct-count" : { - "type" : "integer" - }, - "nil%" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - } - } - }, - "metabase.analyze.fingerprint.schema.NumberFingerprint" : { - "type" : "object", - "properties" : { - "avg" : { - "type" : "number" - }, - "max" : { - "type" : "number" - }, - "min" : { - "type" : "number" - }, - "q1" : { - "type" : "number" - }, - "q3" : { - "type" : "number" - }, - "sd" : { - "type" : "number" - } - } - }, - "metabase.analyze.fingerprint.schema.Percent" : { - "type" : "number" - }, - "metabase.analyze.fingerprint.schema.TemporalFingerprint" : { - "type" : "object", - "properties" : { - "earliest" : { - "type" : "string" - }, - "latest" : { - "type" : "string" - } - } - }, - "metabase.analyze.fingerprint.schema.TextFingerprint" : { - "type" : "object", - "properties" : { - "average-length" : { - "type" : "number" - }, - "percent-email" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - }, - "percent-json" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - }, - "percent-state" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - }, - "percent-url" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - } - } - }, - "metabase.analyze.fingerprint.schema.TypeSpecificFingerprint" : { - "type" : "object", - "properties" : { - "type/DateTime" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.TemporalFingerprint" - }, - "type/Number" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.NumberFingerprint" - }, - "type/Text" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.TextFingerprint" - } - } - }, - "metabase.analyze.query-results.MaybeUnnormalizedReference" : { }, - "metabase.analyze.query-results.ResultColumnMetadata" : { - "type" : "object", - "properties" : { - "field_ref" : { - "$ref" : "#/components/schemas/metabase.analyze.query-results.MaybeUnnormalizedReference" - }, - "fingerprint" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Fingerprint" - }, - "base_type" : { - "description" : "value must be a valid field data type (keyword or string)." - }, - "id" : { - "$ref" : "#/components/schemas/metabase.lib.schema.id.field" - }, - "name" : { - "type" : "string" - }, - "semantic_type" : { - "description" : "value must be a valid field semantic or relation type (keyword or string)." - }, - "display_name" : { - "type" : "string" - }, - "converted_timezone" : { - "$ref" : "#/components/schemas/metabase.lib.schema.expression.temporal.timezone-id" - }, - "unit" : { - "description" : "value must be a keyword or string.", - "anyOf" : [ { - "type" : "string" - }, { - "type" : "string" - } ] - }, - "description" : { - "type" : "string" - } - }, - "required" : [ "name", "display_name", "base_type" ] - }, - "metabase.analyze.query-results.ResultsMetadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/metabase.analyze.query-results.ResultColumnMetadata" - }, - "description" : "value must be an array of valid results column metadata maps.", - "optional" : true - }, - "metabase.cache.api..cache-strategy.base" : { + "metabase.analyze.query-results.ResultsMetadata" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.legacy-column-metadata" + }, + "description" : "value must be an array of valid results column metadata maps.", + "optional" : true + }, + "metabase.cache.api..cache-strategy.base" : { "type" : "object", "properties" : { "type" : { @@ -1258,65 +1793,2653 @@ "required" : [ "type", "subject", "body" ] } ] }, - "metabase.lib.schema.common.non-blank-string" : { - "type" : "string", - "minLength" : 1 + "metabase.collections.api.DashboardQuestionCandidate" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer", + "minimum" : 1 + }, + "name" : { + "type" : "string" + }, + "sole_dashboard_info" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer", + "minimum" : 1 + }, + "name" : { + "type" : "string" + } + }, + "required" : [ "id", "name" ] + } + }, + "required" : [ "id", "name", "sole_dashboard_info" ] }, - "metabase.lib.schema.expression.temporal.timezone-id" : { - "allOf" : [ { - "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + "metabase.collections.api.DashboardQuestionCandidatesResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.collections.api.DashboardQuestionCandidate" + } + }, + "total" : { + "type" : "integer" + } + }, + "required" : [ "data", "total" ] + }, + "metabase.collections.api.MoveDashboardQuestionCandidatesResponse" : { + "type" : "object", + "properties" : { + "moved" : { + "type" : "array", + "items" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + } + } + }, + "required" : [ "moved" ] + }, + "metabase.legacy-mbql.schema.!=" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.*" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.+" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.-" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema./" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.<" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.<=" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.=" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.>" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.>=" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.Addable" : { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateTimeExpressionArg" }, { - "anyOf" : [ { - "type" : "string", - "enum" : [ "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Ciudad_Juarez", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Nelson", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CET", "CST6CDT", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EET", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Kyiv", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT0", "Greenwich", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NZ", "NZ-CHAT", "Navajo", "PRC", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kanton", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROK", "Singapore", "SystemV/AST4", "SystemV/AST4ADT", "SystemV/CST6", "SystemV/CST6CDT", "SystemV/EST5", "SystemV/EST5EDT", "SystemV/HST10", "SystemV/MST7", "SystemV/MST7MDT", "SystemV/PST8", "SystemV/PST8PDT", "SystemV/YST9", "SystemV/YST9YDT", "Turkey", "UCT", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC", "Universal", "W-SU", "WET", "Zulu" ] - }, { - "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.zone-offset" - } ] + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.interval" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpressionArg" } ] }, - "metabase.lib.schema.id.card" : { - "type" : "integer", - "minimum" : 1 + "metabase.legacy-mbql.schema.Aggregation" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.aggregation-options" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.UnnamedAggregation" + } ] }, - "metabase.lib.schema.id.field" : { - "type" : "integer", - "minimum" : 1 + "metabase.legacy-mbql.schema.BooleanExpression" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.and" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.or" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.not" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.=" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.!=" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.<" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.>" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.<=" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.>=" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.between" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.starts-with" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ends-with" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.contains" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.in" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.not-in" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.does-not-contain" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.inside" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.is-empty" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.not-empty" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.is-null" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.not-null" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.relative-time-interval" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.time-interval" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.during" + } ] }, - "metabase.lib.schema.literal..string.datetime" : { + "metabase.legacy-mbql.schema.Constraints" : { + "description" : "Additional constraints added to a query limiting the maximum number of rows that can be returned. Mostly useful\n because native queries don't support the MBQL `:limit` clause. For MBQL queries, if `:limit` is set, it will\n override these values.", + "type" : "object", + "properties" : { + "max-results" : { + "description" : "Maximum number of results to allow for a query with aggregations. If `max-results-bare-rows` is unset, this\n applies to all queries", + "$ref" : "#/components/schemas/metabase.lib.schema.common.int-greater-than-or-equal-to-zero" + }, + "max-results-bare-rows" : { + "description" : "Maximum number of results to allow for a query with no aggregations. If set, this should be LOWER than\n `:max-results`.", + "$ref" : "#/components/schemas/metabase.lib.schema.common.int-greater-than-or-equal-to-zero" + } + } + }, + "metabase.legacy-mbql.schema.DatabaseID" : { + "description" : "Schema for a valid `:database` ID, in the top-level 'outer' query. Either a positive integer (referring to an\n actual Database), or the saved questions virtual ID, which is a placeholder used for queries using the\n `:source-table \"card__id\"` shorthand for a source query resolved by middleware (since clients might not know the\n actual DB for that source query.)", "anyOf" : [ { - "type" : "string", - "pattern" : "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$" + "$ref" : "#/components/schemas/metabase.lib.schema.id.saved-questions-virtual-database" }, { - "type" : "string", - "pattern" : "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))$" + "$ref" : "#/components/schemas/metabase.lib.schema.id.database" } ] }, - "metabase.lib.schema.literal..string.zone-offset" : { - "type" : "string", - "pattern" : "(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))" + "metabase.legacy-mbql.schema.DateOrDatetimeLiteral" : { + "description" : "Schema for a valid date or datetime literal.", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.relative-datetime" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.absolute-datetime" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal.datetime" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal.date" + } ] }, - "metabase.lib.schema.metadata..column.has-field-values" : { + "metabase.legacy-mbql.schema.DateTimeExpressionArg" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Aggregation" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatetimeExpression" + }, { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateOrDatetimeLiteral" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + } ] + }, + "metabase.legacy-mbql.schema.DateTimeUnit" : { + "description" : "Valid unit for *datetime* bucketing.", "type" : "string", - "enum" : [ "auto-list", "list", "none", "search" ] + "enum" : [ "quarter", "day", "hour", "week", "second", "default", "day-of-week", "hour-of-day", "month", "month-of-year", "day-of-month", "year", "day-of-year", "millisecond", "year-of-era", "week-of-year", "quarter-of-year", "minute-of-hour", "minute" ] }, - "metabase.lib.schema.temporal-bucketing.unit" : { + "metabase.legacy-mbql.schema.DateUnit" : { + "description" : "Valid unit for date bucketing.", "type" : "string", - "enum" : [ "quarter", "day", "hour", "week", "second", "default", "day-of-week", "hour-of-day", "month", "month-of-year", "day-of-month", "year", "day-of-year", "millisecond", "year-of-era", "second-of-minute", "week-of-year", "quarter-of-year", "minute-of-hour", "minute" ] + "enum" : [ "quarter", "day", "week", "default", "day-of-week", "month", "month-of-year", "day-of-month", "year", "day-of-year", "year-of-era", "week-of-year", "quarter-of-year" ] }, - "metabase.logger.api.time-unit" : { + "metabase.legacy-mbql.schema.DatetimeDiffUnit" : { + "description" : "Valid units for a datetime-diff clause.", "type" : "string", - "enum" : [ "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds" ] + "enum" : [ "second", "minute", "hour", "day", "week", "month", "quarter", "year" ] }, - "metabase.notification.models.FullyHydratedNotification" : { - "description" : "Fully hydrated notification.", + "metabase.legacy-mbql.schema.DatetimeExpression" : { "oneOf" : [ { - "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.+" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.datetime-add" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.datetime-subtract" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.convert-timezone" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.now" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.date" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.datetime" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.today" + } ] + }, + "metabase.legacy-mbql.schema.EqualityComparable" : { + "anyOf" : [ { + "type" : "boolean" + }, { + "type" : "number" + }, { + "type" : "string" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemporalLiteral" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.relative-datetime" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ExpressionArg" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + } ], + "optional" : true + }, + "metabase.legacy-mbql.schema.ExpressionArg" : { + "oneOf" : [ { + "type" : "number" + }, { + "type" : "boolean" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.BooleanExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatetimeExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Aggregation" + }, { + "type" : "string" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.StringExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, + "metabase.legacy-mbql.schema.ExtractWeekMode" : { + "description" : "Valid modes to extract weeks.", + "type" : "string", + "enum" : [ "iso", "us", "instance" ] + }, + "metabase.legacy-mbql.schema.FieldOptions" : { + "allOf" : [ { + "type" : "object", + "properties" : { + "base-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning", + "description" : "Replaces `binning-strategy`.\n\n Using binning requires the driver to support the `:binning` feature." + }, + "inherited-temporal-unit" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateTimeUnit" + }, + "join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias", + "description" : "Replaces `joined-field`.\n\n `:join-alias` is used to refer to a FieldOrExpression from a different Table/nested query that you are EXPLICITLY\n JOINING against." + }, + "source-field" : { + "description" : "Replaces `fk->`.\n\n `:source-field` is used to refer to a FieldOrExpression from a different Table you would like IMPLICITLY JOINED to\n the source table.\n\n If both `:source-field` and `:join-alias` are supplied, `:join-alias` should be used to perform the join;\n `:source-field` should be for information purposes only.", + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "source-field-join-alias" : { + "description" : "The join alias of the source field used for an implicit join.", + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "source-field-name" : { + "description" : "The name or desired alias of the field used for an implicit join.", + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "temporal-unit" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateTimeUnit", + "description" : "`:temporal-unit` is used to specify DATE BUCKETING for a FieldOrExpression that represents a moment in time of\n some sort.\n\n There is no requirement that all `:type/Temporal` derived FieldOrExpressions specify a `:temporal-unit`, but for\n legacy reasons `:field` clauses that refer to `:type/DateTime` FieldOrExpressions will be automatically \"bucketed\"\n in the `:breakout` and `:filter` clauses, but nowhere else. Auto-bucketing only applies to `:filter` clauses when\n values for comparison are `yyyy-MM-dd` date strings. See the `auto-bucket-datetimes` middleware for more details.\n `:field` clauses elsewhere will not be automatically bucketed, so drivers still need to make sure they do any\n special datetime handling for plain `:field` clauses when their FieldOrExpression derives from `:type/DateTime`." + } + } + }, { + "description" : "If `:base-type` is specified, the `:temporal-unit` must make sense, e.g. no bucketing by `:year`for\n a `:type/Time` column.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.validate-temporal-unit" + }, { + "description" : "You cannot use `:binning` keys like `:strategy` in the top level.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.no-binning-options-at-top-level" + } ] + }, + "metabase.legacy-mbql.schema.FieldOrExpressionDef" : { + "description" : "Schema for anything that is accepted as a top-level expression definition, either an arithmetic expression such as a\n `:+` clause or a `:field` or `:value` clause.", + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.StringExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.BooleanExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatetimeExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case:if" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.offset" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, + "metabase.legacy-mbql.schema.Fields" : { + "allOf" : [ { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, + "minItems" : 1 + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.helpers.distinct" + } ] + }, + "metabase.legacy-mbql.schema.Filter" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatetimeExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.StringExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.BooleanExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.segment" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, + "metabase.legacy-mbql.schema.Ident" : { + "description" : "Unique identifier string for new `:column` refs. The new refs aren't used in legacy MBQL (currently) but the\n idents for column-introducing new clauses (joins, aggregations, breakouts, expressions) are randomly generated when\n the clauses are created, so the idents must be preserved in legacy MBQL.\n\n These are opaque strings under the initial design; I've made them a separate schema for documentation and\n future-proofing.", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, { + "type" : "string" + } ] + }, + "metabase.legacy-mbql.schema.IntGreaterThanZeroOrNumericExpression" : { + "oneOf" : [ { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + } ] + }, + "metabase.legacy-mbql.schema.Join" : { + "description" : "Perform the equivalent of a SQL `JOIN` with another Table or nested `:source-query`. JOINs are either explicitly\n specified in the incoming query, or implicitly generated when one uses a `:field` clause with `:source-field`.\n\n In the top-level query, you can reference Fields from the joined table or nested query by including `:source-field`\n in the `:field` options (known as implicit joins); for explicit joins, you *must* specify `:join-alias` yourself; in\n the `:field` options, e.g.\n\n ;; for joins against other Tables/MBQL source queries\n [:field 1 {:join-alias \"my_join_alias\"}]\n\n ;; for joins against native queries\n [:field \"my_field\" {:base-type :field/Integer, :join-alias \"my_join_alias\"}]", + "type" : "object", + "properties" : { + "ident" : { + "description" : "An opaque string used as a unique identifier for this join clause, even if it evolves. This string is randomly\n generated when a join clause is created, so it can never be confused with another join of the same table.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Ident" + }, + "strategy" : { + "description" : "Defaults to `:left-join`; used for all automatically-generated JOINs\n\n Driver implementations: this is guaranteed to be present after pre-processing.", + "type" : "string", + "enum" : [ "full-join", "right-join", "left-join", "inner-join" ] + }, + "source-metadata" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.legacy-column-metadata" + }, + "description" : "Metadata about the source query being used, if pulled in from a Card via the\n `:source-table \"card__id\"` syntax. added automatically by the `resolve-card-id-source-tables` middleware." + }, + "condition" : { + "description" : "The condition on which to JOIN. Can be anything that is a valid `:filter` clause. For automatically-generated\n JOINs this is usually something like\n\n [:= [:field {:join-alias }]]", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Filter" + }, + "source-query" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.SourceQuery" + }, + "fk-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field", + "description" : "Mostly used only internally. When a join is implicitly generated via a `:field` clause with\n `:source-field`, the ID of the foreign key field in the source Table will be recorded here. This information is used\n to add `fk_field_id` information to the `:cols` in the query results, and also for drill-thru. When generating\n explicit joins by hand you can usually omit this information, altho it doesn't hurt to include it if you know it.\n\n Don't set this information yourself. It will have no effect." + }, + "fields" : { + "description" : "The Fields from this join to include in parent-level results. This can be either `:none`, `:all`, or a sequence\n of `:field` clauses.\n\n * `:none`: no Fields from the joined table or nested query are included (unless indirectly included by breakouts or\n other clauses). This is the default, and what is used for automatically-generated joins.\n\n * `:all`: will include all of the Field from the joined table or query\n\n * a sequence of Field clauses: include only the Fields specified. Valid clauses are the same as the top-level\n `:fields` clause. This should be non-empty and all elements should be distinct. The normalizer will automatically\n remove duplicate fields for you, and replace empty clauses with `:none`.\n\n Driver implementations: you can ignore this clause. Relevant fields will be added to top-level `:fields` clause with\n appropriate aliases.", + "anyOf" : [ { + "type" : "string", + "enum" : [ "all", "none" ] + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Fields" + } ] + }, + "source-table" : { + "description" : "*What* to JOIN. Self-joins can be done by using the same `:source-table` as in the query where\n this is specified. YOU MUST SUPPLY EITHER `:source-table` OR `:source-query`, BUT NOT BOTH!", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.id.table" + }, { + "description" : "`card__` string Table ID", + "type" : "string", + "pattern" : "^card__[1-9]\\d*$" + } ] + }, + "alias" : { + "description" : "The name used to alias the joined table or query. This is usually generated automatically and generally looks\n like `table__via__field`. You can specify this yourself if you need to reference a joined field with a `:join-alias`\n in the options.\n\n Driver implementations: This is guaranteed to be present after pre-processing.", + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + } + }, + "required" : [ "condition" ] + }, + "metabase.legacy-mbql.schema.Joins" : { + "description" : "Schema for a valid sequence of `Join`s. Must be a non-empty sequence, and `:alias`, if specified, must be unique.", + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Join" + }, + "minItems" : 1 + }, + "metabase.legacy-mbql.schema.MBQLQuery" : { + "type" : "object", + "properties" : { + "breakout" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, + "minItems" : 1 + }, + "source-metadata" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.legacy-column-metadata" + }, + "description" : "Info about the columns of the source query. Added in automatically by middleware. This metadata is\n primarily used to let power things like binning when used with Field Literals instead of normal Fields." + }, + "source-query" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.SourceQuery" + }, + "limit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.int-greater-than-or-equal-to-zero" + }, + "filter" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Filter" + }, + "joins" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Joins" + }, + "aggregation" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Aggregation" + }, + "minItems" : 1 + }, + "fields" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Fields" + }, + "source-table" : { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.id.table" + }, { + "description" : "`card__` string Table ID", + "type" : "string", + "pattern" : "^card__[1-9]\\d*$" + } ] + }, + "order-by" : { + "allOf" : [ { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.OrderBy" + }, + "minItems" : 1 + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.helpers.distinct" + } ] + }, + "page" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Page" + }, + "expressions" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.FieldOrExpressionDef" + } + } + } + }, + "metabase.legacy-mbql.schema.MiddlewareOptions" : { + "description" : "Additional options that can be used to toggle middleware on or off.", + "type" : "object", + "properties" : { + "add-default-userland-constraints?" : { + "type" : "boolean", + "description" : "Whether to add some default `max-results` and `max-results-bare-rows` constraints. By default, none are added,\n although the functions that ultimately power most API endpoints tend to set this to `true`. See\n `add-constraints` middleware for more details." + }, + "disable-max-results?" : { + "description" : "Disable applying a default limit on the query results. Handled in the `add-default-limit` middleware. If true,\n this will override the `:max-results` and `:max-results-bare-rows` values in `Constraints`.", + "type" : "boolean" + }, + "disable-mbql->native?" : { + "description" : "Disable the MBQL->native middleware. If you do this, the query will not work at all, so there are no cases where\n you should set this yourself. This is only used by the `metabase.query-processor.preprocess/preprocess` function to\n get the fully pre-processed query without attempting to convert it to native.", + "type" : "boolean" + }, + "format-rows?" : { + "description" : "Should we skip converting datetime types to ISO-8601 strings with appropriate timezone when post-processing\n results? Used by `metabase.query-processor.middleware.format-rows`default `false`.", + "type" : "boolean" + }, + "process-viz-settings?" : { + "type" : "boolean", + "description" : "Whether to process a question's visualization settings and include them in the result metadata so that they can\n incorporated into an export. Used by `metabase.query-processor.middleware.visualization-settings`; default\n `false`." + }, + "skip-results-metadata?" : { + "description" : "Should we skip adding `results_metadata` to query results after running the query? Used by\n `metabase.query-processor.middleware.results-metadata`; default `false`. (Note: we may change the name of this\n column in the near future, to `result_metadata`, to fix inconsistencies in how we name things.)", + "type" : "boolean" + }, + "userland-query?" : { + "type" : "boolean", + "description" : "Userland queries are ones ran as a result of an API call, Pulse, or the like. Special handling is done in\n certain userland-only middleware for such queries -- results are returned in a slightly different format, and\n QueryExecution entries are normally saved, unless you pass `:no-save` as the option." + } + } + }, + "metabase.legacy-mbql.schema.NativeSourceQuery" : { + "type" : "object", + "properties" : { + "collection" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "native" : { }, + "template-tags" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTagMap" + } + }, + "required" : [ "native" ] + }, + "metabase.legacy-mbql.schema.NumericExpression" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.+" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.-" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.~1" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.*" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.coalesce" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.length" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.floor" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ceil" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.round" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.abs" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.power" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.sqrt" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.exp" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.log" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case:if" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.datetime-diff" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.integer" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.float" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.temporal-extract" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-year" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-quarter" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-month" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-week" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-day" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-day-of-week" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-hour" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-minute" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-second" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.aggregation" + } ] + }, + "metabase.legacy-mbql.schema.NumericExpressionArg" : { + "oneOf" : [ { + "type" : "number" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Aggregation" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Reference" + } ] + }, + "metabase.legacy-mbql.schema.OrderBy" : { + "description" : "Schema for an `order-by` clause subclause.", + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.asc" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.desc" + } ] + }, + "metabase.legacy-mbql.schema.OrderComparable" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "anyOf" : [ { + "type" : "number" + }, { + "type" : "string" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemporalLiteral" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ExpressionArg" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.relative-datetime" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + } ] + } ] + }, + "metabase.legacy-mbql.schema.Page" : { + "description" : "`page` = page num, starting with 1. `items` = number of items per page.\n e.g.\n\n {:page 1, :items 10} = items 1-10\n {:page 2, :items 10} = items 11-20", + "type" : "object", + "properties" : { + "items" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, + "page" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "page", "items" ] + }, + "metabase.legacy-mbql.schema.Parameter" : { + "description" : "Schema for the *value* of a parameter (e.g. a Dashboard parameter or a native query template tag) as passed in as\n part of the `:parameters` list in a query.", + "type" : "object", + "properties" : { + "default" : { }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { }, + "slug" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "target" : { + "oneOf" : [ { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.dimension" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.variable" + } ] + } ] + }, { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.dimension" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.variable" + } ] + } ] + }, { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.dimension" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.variable" + } ] + } ] + } ] + }, + "type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.type" + }, + "value" : { } + }, + "required" : [ "type" ] + }, + "metabase.legacy-mbql.schema.ParameterList" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Parameter" + }, + "optional" : true + }, + "metabase.legacy-mbql.schema.Query" : { + "allOf" : [ { + "type" : "object", + "properties" : { + "update-row" : { + "$ref" : "#/components/schemas/metabase.lib.schema.actions.row" + }, + "settings" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Settings" + }, + "constraints" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Constraints" + }, + "query" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.MBQLQuery" + }, + "native" : { + "type" : "object", + "properties" : { + "collection" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "query" : { }, + "template-tags" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTagMap" + } + }, + "required" : [ "query" ] + }, + "info" : { + "$ref" : "#/components/schemas/metabase.lib.schema.info.info", + "description" : "Used when recording info about this run in the QueryExecution log; things like context query was\n ran in and User who ran it." + }, + "middleware" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.MiddlewareOptions" + }, + "database" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatabaseID" + }, + "type" : { + "description" : "Type of query. `:query` = MBQL; `:native` = native.", + "type" : "string", + "enum" : [ "query", "native" ] + }, + "parameters" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ParameterList" + }, + "create-row" : { + "$ref" : "#/components/schemas/metabase.lib.schema.actions.row" + } + }, + "required" : [ "type" ] + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.check-keys-for-query-type" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.check-query-does-not-have-source-metadata" + } ] + }, + "metabase.legacy-mbql.schema.Reference" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.aggregation" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.expression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + } ] + }, + "metabase.legacy-mbql.schema.RelativeDatetimeUnit" : { + "type" : "string", + "enum" : [ "default", "minute", "hour", "day", "week", "month", "quarter", "year" ] + }, + "metabase.legacy-mbql.schema.Settings" : { + "description" : "Options that tweak the behavior of the query processor.", + "type" : "object", + "properties" : { + "report-timezone" : { + "description" : "The timezone the query should be ran in, overriding the default report timezone for the instance.", + "$ref" : "#/components/schemas/metabase.lib.schema.expression.temporal.timezone-id" + } + } + }, + "metabase.legacy-mbql.schema.SourceQuery" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NativeSourceQuery" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.MBQLQuery" + } ] + }, + "metabase.legacy-mbql.schema.StringExpression" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.substring" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.trim" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ltrim" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.rtrim" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.replace" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.lower" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.upper" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.concat" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.regex-match-first" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.coalesce" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case:if" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.host" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.domain" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.subdomain" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.path" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.month-name" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.quarter-name" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.day-name" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.text" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.split-part" + } ] + }, + "metabase.legacy-mbql.schema.StringExpressionArg" : { + "oneOf" : [ { + "type" : "string" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.StringExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, + "metabase.legacy-mbql.schema.TemplateTag" : { + "description" : "Schema for a template tag as specified in a native query. There are four types of template tags, differentiated by\n `:type`.\n\n Template tags are used to specify {{placeholders}} in native queries that are replaced with some sort of value when\n the query itself runs. There are four basic types of template tag for native queries:\n\n 1. Field filters, which are used like\n\n SELECT * FROM table WHERE {{field_filter}}\n\n These reference specific Fields and are replaced with entire conditions, e.g. `some_field > 1000`\n\n 2. Raw values, which are used like\n\n SELECT * FROM table WHERE my_field = {{x}}\n\n These are replaced with raw values.\n\n 3. Native query snippets, which might be used like\n\n SELECT * FROM ({{snippet: orders}}) source\n\n These are replaced with `NativeQuerySnippet`s from the application database.\n\n 4. Source query Card IDs, which are used like\n\n SELECT * FROM ({{#123}}) source\n\n These are replaced with the query from the Card with that ID.\n\n Field filters and raw values usually have their value specified by `:parameters`.", + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:FieldFilter" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:Snippet" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:SourceQuery" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:TemporalUnit" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:RawValue" + } ] + }, + "metabase.legacy-mbql.schema.TemplateTag:FieldFilter" : { + "description" : "Schema for a field filter template tag.", + "type" : "object", + "properties" : { + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { + "type" : "boolean" + }, + "type" : { + "const" : "dimension" + }, + "alias" : { + "type" : "string" + }, + "options" : { + "type" : "object", + "additionalProperties" : { }, + "description" : "optional map to be appended to filter clause" + }, + "dimension" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + }, + "default" : { }, + "widget-type" : { + "description" : "which type of widget the frontend should show for this Field Filter; this also affects which parameter types\n are allowed to be specified for it.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.WidgetType" + } + }, + "required" : [ "type", "name", "display-name", "dimension", "widget-type" ] + }, + "metabase.legacy-mbql.schema.TemplateTag:RawValue" : { + "description" : "Schema for a raw value template tag.", + "type" : "object", + "properties" : { + "default" : { }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { + "type" : "boolean" + }, + "type" : { + "type" : "string", + "enum" : [ "date", "number", "boolean", "text" ] + } + }, + "required" : [ "type", "name", "display-name" ] + }, + "metabase.legacy-mbql.schema.TemplateTag:Snippet" : { + "description" : "Schema for a native query snippet template tag.", + "type" : "object", + "properties" : { + "database" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "snippet-id" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, + "snippet-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "type" : { + "const" : "snippet" + } + }, + "required" : [ "type", "name", "display-name", "snippet-name", "snippet-id" ] + }, + "metabase.legacy-mbql.schema.TemplateTag:SourceQuery" : { + "description" : "Schema for a source query template tag.", + "type" : "object", + "properties" : { + "card-id" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "type" : { + "const" : "card" + } + }, + "required" : [ "type", "name", "display-name", "card-id" ] + }, + "metabase.legacy-mbql.schema.TemplateTag:TemporalUnit" : { + "description" : "Schema for a temporal unit template tag.", + "type" : "object", + "properties" : { + "alias" : { + "type" : "string" + }, + "default" : { }, + "dimension" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { + "type" : "boolean" + }, + "type" : { + "const" : "temporal-unit" + } + }, + "required" : [ "type", "name", "display-name", "dimension" ] + }, + "metabase.legacy-mbql.schema.TemplateTagMap" : { + "description" : "Schema for the `:template-tags` map passed in as part of a native query.\n\n Map of template tag name -> template tag definition", + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag" + } + }, + "metabase.legacy-mbql.schema.TemporalExtractUnit" : { + "description" : "Valid units to extract from a temporal.", + "type" : "string", + "enum" : [ "year-of-era", "quarter-of-year", "month-of-year", "week-of-year-iso", "week-of-year-us", "week-of-year-instance", "day-of-month", "day-of-week", "day-of-week-iso", "hour-of-day", "minute-of-hour", "second-of-minute" ] + }, + "metabase.legacy-mbql.schema.TemporalLiteral" : { + "description" : "Schema for valid temporal literals.", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateOrDatetimeLiteral" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TimeLiteral" + } ] + }, + "metabase.legacy-mbql.schema.TimeLiteral" : { + "description" : "Schema for valid time literals.", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.time" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal.time" + } ] + }, + "metabase.legacy-mbql.schema.TimeUnit" : { + "description" : "Valid unit for time bucketing.", + "type" : "string", + "enum" : [ "hour", "second", "default", "hour-of-day", "millisecond", "minute-of-hour", "minute" ] + }, + "metabase.legacy-mbql.schema.UnnamedAggregation" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.aggregation" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.avg" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.cum-sum" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.distinct" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.distinct-where" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.stddev" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.sum" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.min" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.max" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.metric" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.share" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.count-where" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.sum-where" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case:if" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.median" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.percentile" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ag:var" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.cum-count" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.count" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.offset" + } ] + } ] + }, + "metabase.legacy-mbql.schema.ValueTypeInfo" : { + "description" : "Type info about a value in a `:value` clause. Added automatically by `wrap-value-literals` middleware to values in filter clauses based on the Field in the clause.", + "type" : "object", + "properties" : { + "base_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "database_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "semantic_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + }, + "unit" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateTimeUnit" + } + } + }, + "metabase.legacy-mbql.schema.WidgetType" : { + "description" : "Schema for valid values of `:widget-type` for a [[::TemplateTag:FieldFilter]].", + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.widget-type" + }, + "metabase.legacy-mbql.schema.abs" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.absolute-datetime" : { + "oneOf" : [ { }, { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.ag:var" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.aggregation" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.aggregation-options" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.and" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.asc" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.avg" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.between" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.case" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.case:if" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.ceil" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.check-keys-for-query-type" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.check-query-does-not-have-source-metadata" : { + "description" : "`:source-metadata` is added to queries when `card__id` source queries are resolved. It contains info about the\n columns in the source query.\n\n Where this is added was changed in Metabase 0.33.0 -- previously, when `card__id` source queries were resolved, the\n middleware would add `:source-metadata` to the top-level; to support joins against source queries, this has been\n changed so it is always added at the same level the resolved `:source-query` is added.\n\n This should automatically be fixed by `normalize`; if we encounter it, it means some middleware is not functioning\n properly." + }, + "metabase.legacy-mbql.schema.coalesce" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.concat" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.contains" : { + "anyOf" : [ { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.convert-timezone" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.count" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.count-where" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.cum-count" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.cum-sum" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.date" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.datetime" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.datetime-add" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.datetime-diff" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.datetime-subtract" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.day-name" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.desc" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.dimension" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.distinct" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.distinct-where" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.does-not-contain" : { + "anyOf" : [ { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.domain" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.during" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.ends-with" : { + "anyOf" : [ { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.exp" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.expression" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.field" : { + "allOf" : [ { + "allOf" : [ ] + }, { + "description" : "Fields using names rather than integer IDs are required to specify `:base-type`.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.require-base-type-for-field-name" + } ] + }, + "metabase.legacy-mbql.schema.field-or-expression-ref" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.expression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + } ] + }, + "metabase.legacy-mbql.schema.float" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.floor" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-day" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-day-of-week" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-hour" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-minute" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-month" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-quarter" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-second" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-week" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-year" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.helpers.distinct" : { + "description" : "values must be distinct" + }, + "metabase.legacy-mbql.schema.host" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.in" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.inside" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.integer" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.interval" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.is-empty" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.is-null" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.legacy-column-metadata" : { + "description" : "Schema for a single legacy metadata column. This is the pre-Lib equivalent of\n `:metabase.lib.schema.metadata/column`.", + "type" : "object", + "properties" : { + "field_ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Reference" + }, + "fingerprint" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.fingerprint" + }, + "visibility_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.visibility-type" + }, + "base_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "name" : { + "type" : "string" + }, + "semantic_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + }, + "display_name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "converted_timezone" : { + "$ref" : "#/components/schemas/metabase.lib.schema.expression.temporal.timezone-id" + }, + "source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.legacy-source" + }, + "effective_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + } + }, + "required" : [ "base_type", "display_name", "name" ] + }, + "metabase.legacy-mbql.schema.length" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.log" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.lower" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.ltrim" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.max" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.median" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.metric" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.min" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.month-name" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.no-binning-options-at-top-level" : { }, + "metabase.legacy-mbql.schema.not" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.not-empty" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.not-in" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.not-null" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.now" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.offset" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.or" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.path" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.percentile" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.power" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.quarter-name" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.regex-match-first" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.relative-datetime" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.relative-time-interval" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.replace" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.require-base-type-for-field-name" : { }, + "metabase.legacy-mbql.schema.round" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.rtrim" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.segment" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.share" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.split-part" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.sqrt" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.starts-with" : { + "anyOf" : [ { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.stddev" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.subdomain" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.substring" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.sum" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.sum-where" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.template-tag" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.temporal-extract" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.text" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.time" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.time-interval" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.today" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.trim" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.upper" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.validate-temporal-unit" : { }, + "metabase.legacy-mbql.schema.value" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.variable" : { + "allOf" : [ ] + }, + "metabase.lib.schema.actions.row" : { + "type" : "object", + "additionalProperties" : { } + }, + "metabase.lib.schema.binning.bin-width" : { + "description" : "Bin width (size of each bin).", + "$ref" : "#/components/schemas/metabase.lib.schema.common.positive-number" + }, + "metabase.lib.schema.binning.binning" : { + "description" : "Schema for `:binning` options passed to a `:field` clause.", + "allOf" : [ { + "type" : "object", + "properties" : { + "strategy" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.strategy" + } + }, + "required" : [ "strategy" ] + }, { + "oneOf" : [ { + "type" : "object", + "properties" : { + "strategy" : { + "const" : "default" + } + }, + "required" : [ "strategy" ] + }, { + "type" : "object", + "properties" : { + "bin-width" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.bin-width" + }, + "strategy" : { + "const" : "bin-width" + } + }, + "required" : [ "strategy", "bin-width" ] + }, { + "type" : "object", + "properties" : { + "num-bins" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.num-bins" + }, + "strategy" : { + "const" : "num-bins" + } + }, + "required" : [ "strategy", "num-bins" ] + } ] + } ] + }, + "metabase.lib.schema.binning.num-bins" : { + "description" : "Number of bins to use.", + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.binning.strategy" : { + "type" : "string", + "enum" : [ "bin-width", "default", "num-bins" ] + }, + "metabase.lib.schema.common.base-type" : { + "type" : "string" + }, + "metabase.lib.schema.common.int-greater-than-or-equal-to-zero" : { + "description" : "Schema representing an integer than must also be greater than or equal to zero.", + "type" : "integer", + "minimum" : 0 + }, + "metabase.lib.schema.common.non-blank-string" : { + "type" : "string", + "minLength" : 1 + }, + "metabase.lib.schema.common.options" : { + "default" : { }, + "type" : "object", + "properties" : { + "base-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "database-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "effective-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/uuid" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.uuid" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "semantic-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + } + }, + "required" : [ "lib/uuid" ] + }, + "metabase.lib.schema.common.positive-number" : { }, + "metabase.lib.schema.common.semantic-or-relation-type" : { + "description" : "valid semantic or relation type", + "type" : "string" + }, + "metabase.lib.schema.common.uuid" : { + "type" : "string", + "minLength" : 36, + "maxLength" : 36 + }, + "metabase.lib.schema.expression.temporal.timezone-id" : { + "allOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, { + "anyOf" : [ { + "type" : "string", + "enum" : [ "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Ciudad_Juarez", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Nelson", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CET", "CST6CDT", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EET", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Kyiv", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT0", "Greenwich", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NZ", "NZ-CHAT", "Navajo", "PRC", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kanton", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROK", "Singapore", "SystemV/AST4", "SystemV/AST4ADT", "SystemV/CST6", "SystemV/CST6CDT", "SystemV/EST5", "SystemV/EST5EDT", "SystemV/HST10", "SystemV/MST7", "SystemV/MST7MDT", "SystemV/PST8", "SystemV/PST8PDT", "SystemV/YST9", "SystemV/YST9YDT", "Turkey", "UCT", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC", "Universal", "W-SU", "WET", "Zulu" ] + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.zone-offset" + } ] + } ] + }, + "metabase.lib.schema.expression.window..offset.n" : { + "type" : "integer" + }, + "metabase.lib.schema.id.action" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.card" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.dashboard" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.database" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.dimension" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.field" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.pulse" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.saved-questions-virtual-database" : { + "description" : "The ID used to signify that a database is 'virtual' rather than physical.\n\n A fake integer ID is used so as to minimize the number of changes that need to be made on the frontend -- by using\n something that would otherwise be a legal ID, *nothing* need change there, and the frontend can query against this\n 'database' none the wiser. (This integer ID is negative which means it will never conflict with a *real* database\n ID.)\n\n This ID acts as a sort of flag. The relevant places in the middleware can check whether the DB we're querying is\n this 'virtual' database and take the appropriate actions.", + "const" : -1337 + }, + "metabase.lib.schema.id.segment" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.table" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.user" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.info.context" : { + "type" : "string", + "enum" : [ "action", "ad-hoc", "cache-refresh", "collection", "map-tiles", "pulse", "dashboard-subscription", "dashboard", "question", "csv-download", "xlsx-download", "json-download", "public-dashboard", "public-question", "public-csv-download", "public-xlsx-download", "public-json-download", "embedded-dashboard", "embedded-question", "embedded-csv-download", "embedded-xlsx-download", "embedded-json-download", "table-grid" ] + }, + "metabase.lib.schema.info.hash" : { + "type" : "string", + "format" : "byte" + }, + "metabase.lib.schema.info.info" : { + "type" : "object", + "properties" : { + "query-hash" : { + "$ref" : "#/components/schemas/metabase.lib.schema.info.hash" + }, + "action-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.action" + }, + "pivot/original-query" : { + "type" : "object", + "additionalProperties" : { } + }, + "executed-by" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.user" + }, + "card-entity-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "card-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.card" + }, + "pivot/result-metadata" : { + "oneOf" : [ { + "const" : "none" + }, { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.column" + } + } ] + }, + "context" : { + "$ref" : "#/components/schemas/metabase.lib.schema.info.context" + }, + "dashboard-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.dashboard" + }, + "metadata/model-metadata" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.lib-or-legacy-column" + } + }, + "pulse-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.pulse" + }, + "card-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + } + } + }, + "metabase.lib.schema.join.alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "metabase.lib.schema.literal..string.date" : { + "type" : "string", + "pattern" : "^\\d{4}-\\d{2}-\\d{2}$" + }, + "metabase.lib.schema.literal..string.datetime" : { + "anyOf" : [ { + "type" : "string", + "pattern" : "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$" + }, { + "type" : "string", + "pattern" : "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))$" + } ] + }, + "metabase.lib.schema.literal..string.time" : { + "anyOf" : [ { + "type" : "string", + "pattern" : "^\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$" + }, { + "type" : "string", + "pattern" : "^\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))$" + } ] + }, + "metabase.lib.schema.literal..string.zone-offset" : { + "type" : "string", + "pattern" : "(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))" + }, + "metabase.lib.schema.literal.date" : { + "anyOf" : [ { }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.date" + } ] + }, + "metabase.lib.schema.literal.datetime" : { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.datetime" + }, { }, { }, { } ] + }, + "metabase.lib.schema.literal.time" : { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.time" + }, { }, { } ] + }, + "metabase.lib.schema.metadata..column.has-field-values" : { + "type" : "string", + "enum" : [ "auto-list", "list", "none", "search" ] + }, + "metabase.lib.schema.metadata..column.legacy-source" : { + "description" : "Possible values for `column.source` -- this is added by [[metabase.lib.metadata.result-metadata]] for historical\n reasons (it is used in a few places in the FE). DO NOT use this in the backend for any purpose, use `:lib/source`\n instead.", + "type" : "string", + "enum" : [ "aggregation", "fields", "breakout", "native" ] + }, + "metabase.lib.schema.metadata..column.remapping.external" : { + "description" : "External remapping (Dimension) for a column. From the [[metabase.warehouse-schema.models.dimension]] with `type =\n external` associated with a `Field` in the application database.\n See [[metabase.query-processor.middleware.add-dimension-projections]] for what this means.", + "type" : "object", + "properties" : { + "field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.dimension" + }, + "lib/type" : { + "const" : "metadata.column.remapping/external" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + } + }, + "required" : [ "lib/type", "id", "name", "field-id" ] + }, + "metabase.lib.schema.metadata..column.remapping.internal" : { + "description" : "Internal remapping (FieldValues) for a column. From [[metabase.warehouse-schema.models.dimension]] with `type =\n internal` and the [[metabase.warehouse-schema.models.field-values]] associated with a `Field` in the application\n database. See [[metabase.query-processor.middleware.add-dimension-projections]] for what this means.", + "type" : "object", + "properties" : { + "human-readable-values" : { + "type" : "array", + "items" : { } + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.dimension" + }, + "lib/type" : { + "const" : "metadata.column.remapping/internal" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "values" : { + "type" : "array", + "items" : { } + } + }, + "required" : [ "lib/type", "id", "name", "values", "human-readable-values" ] + }, + "metabase.lib.schema.metadata..column.source" : { + "description" : "`:lib/source` -- where a column came from with respect to the current stage.\n\n Traditionally, `:lib/source` meant something slightly different -- it denoted what part of the current stage a\n column came from, and thus included two additional options -- `:source/fields`, for columns used by `:fields`, and\n `:source/breakouts`, for columns used in `:breakout`. This was not really useful information and made `:lib/source`\n itself useless for determining if a column was 'inherited' or not (i.e., whether it came from a previous stage,\n source card, or a join, and should get field name refs instead of field ID refs --\n see [[metabase.lib.field.util/inherited-column?]]).", + "type" : "string", + "enum" : [ "source/card", "source/native", "source/previous-stage", "source/table-defaults", "source/aggregations", "source/joins", "source/expressions", "source/implicitly-joinable" ] + }, + "metabase.lib.schema.metadata..column.validate-expression-source" : { + "description" : "Only allow `:lib/expression-name` when `:lib/source` is `:source/expressions`. If it's anything else, it probably\n means it's getting incorrectly propagated from a previous stage (QUE-1342)." + }, + "metabase.lib.schema.metadata..column.validate-native-column" : { + "description" : "Certain keys cannot possibly be set when a column comes from directly from native query results, for example\n `:lib/breakout?` or join aliases" + }, + "metabase.lib.schema.metadata..column.validate-table-defaults-column" : { + "description" : "A column with :lib/source :source/table-defaults cannot possibly have a join alias." + }, + "metabase.lib.schema.metadata..column.visibility-type" : { + "type" : "string", + "enum" : [ "retired", "sensitive", "normal", "hidden", "details-only" ] + }, + "metabase.lib.schema.metadata.column" : { + "description" : "Malli schema for a valid map of column metadata, which can mean one of two things:\n\n 1. Metadata about a particular Field in the application database. This will always have an `:id`\n\n 2. Results metadata from a column in `data.cols` and/or `data.results_metadata.columns` in a Query Processor\n response, or saved in something like `Card.result_metadata`. These *may* have an `:id`, or may not -- columns\n coming back from native queries or things like `SELECT count(*)` aren't associated with any particular `Field`\n and thus will not have an `:id`.\n\n Now maybe these should be two different schemas, but `:id` being there or not is the only real difference; besides\n that they are largely compatible. So they're the same for now. We can revisit this in the future if we actually want\n to differentiate between the two versions.", + "allOf" : [ { + "type" : "object", + "properties" : { + "visibility-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.visibility-type" + }, + "fk-join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "lib/external-remap" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.remapping.external" + }, + "inherited-temporal-unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + }, + "lib/source-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.source-column-alias" + }, + "database-type" : { + "type" : "string" + }, + "lib/type" : { + "default" : "metadata/column", + "const" : "metadata/column" + }, + "fingerprint" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.fingerprint" + }, + "display-name" : { + "type" : "string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "effective-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/deduplicated-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.deduplicated-name" + }, + "base-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/original-expression-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "fk-field-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "type" : "string" + }, + "lib/card-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.card" + }, + "lib/expression-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "lib/breakout?" : { + "type" : "boolean" + }, + "metabase.lib.field/temporal-unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + }, + "metabase.lib.field/binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning" + }, + "lib/model-display-name" : { + "type" : "string" + }, + "has-field-values" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.has-field-values" + }, + "lib/internal-remap" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.remapping.internal" + }, + "selected?" : { + "type" : "boolean" + }, + "source-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.legacy-source" + }, + "metabase.lib.join/join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + }, + "fk-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "lib/original-binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning" + }, + "lib/original-join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + }, + "lib/original-display-name" : { + "type" : "string" + }, + "lib/source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.source" + }, + "active" : { + "type" : "boolean" + }, + "lib/ref-display-name" : { + "type" : "string" + }, + "lib/original-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.original-name" + }, + "lib/hack-original-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.original-name" + }, + "semantic-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + }, + "fk-target-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "field-ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Reference" + }, + "lib/desired-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.desired-column-alias" + } + }, + "required" : [ "lib/type", "name", "base-type" ] + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.kebab-cased-map" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-expression-source" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-native-column" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-table-defaults-column" + } ] + }, + "metabase.lib.schema.metadata.deduplicated-name" : { + "type" : "string", + "description" : "The simply-deduplicated name that was historically used in QP results metadata (originally calculated by\n the [[metabase.query-processor.middleware.annotate]] middleware, now calculated\n by [[metabase.lib.middleware.result-metadata]]). This just adds suffixes to column names e.g. `ID` and `ID` become\n `ID` and `ID_2`, respectively. Kept around because many old field refs use this column name.", + "optional" : true + }, + "metabase.lib.schema.metadata.desired-column-alias" : { + "type" : "string", + "minLength" : 1 + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.global" : { + "description" : "Fingerprint values that Fields of all types should have.", + "type" : "object", + "properties" : { + "distinct-count" : { + "type" : "integer" + }, + "nil%" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + } + } + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.number" : { + "description" : "Schema for fingerprint information for Fields deriving from `:type/Number`.", + "type" : "object", + "properties" : { + "avg" : { + "type" : "number" + }, + "max" : { + "type" : "number" + }, + "min" : { + "type" : "number" + }, + "q1" : { + "type" : "number" + }, + "q3" : { + "type" : "number" + }, + "sd" : { + "type" : "number" + } + } + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.temporal" : { + "description" : "Schema for fingerprint information for Fields deriving from `:type/Temporal`.", + "type" : "object", + "properties" : { + "earliest" : { + "type" : "string" + }, + "latest" : { + "type" : "string" + } + } + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.text" : { + "description" : "Schema for fingerprint information for Fields deriving from `:type/Text`.", + "type" : "object", + "properties" : { + "average-length" : { + "type" : "number" + }, + "percent-email" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + }, + "percent-json" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + }, + "percent-state" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + }, + "percent-url" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + } + } + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.type-specific" : { + "description" : "Schema for type-specific fingerprint information.", + "allOf" : [ { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, { + "type" : "object", + "properties" : { + "type/DateTime" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.temporal" + }, + "type/Number" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.number" + }, + "type/Text" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.text" + } + } + } ] + }, + "metabase.lib.schema.metadata.fingerprint.fingerprint" : { + "description" : "Schema for a Field 'fingerprint' generated as part of the analysis stage. Used to power the 'classification'\n sub-stage of analysis. Stored as the `fingerprint` column of Field.", + "type" : "object", + "properties" : { + "experimental" : { + "type" : "object", + "additionalProperties" : { } + }, + "global" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.global" + }, + "type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.type-specific" + } + } + }, + "metabase.lib.schema.metadata.fingerprint.percent" : { + "description" : "Schema for something represting a percentage. A floating-point value between (inclusive) 0 and 1.", + "type" : "number" + }, + "metabase.lib.schema.metadata.kebab-cased-map" : { }, + "metabase.lib.schema.metadata.lib-or-legacy-column" : { + "description" : "Schema for the maps in card `:result-metadata` and similar. These can be either\n `:metabase.lib.schema.metadata/result-metadata` (i.e., kebab-cased) maps, or map snake_cased as returned by QP\n metadata, but they should NOT be a mixture of both -- if we mixed them somehow there is a bug in our code.", + "oneOf" : [ { + "description" : "Malli schema for a valid map of column metadata, which can mean one of two things:\n\n 1. Metadata about a particular Field in the application database. This will always have an `:id`\n\n 2. Results metadata from a column in `data.cols` and/or `data.results_metadata.columns` in a Query Processor\n response, or saved in something like `Card.result_metadata`. These *may* have an `:id`, or may not -- columns\n coming back from native queries or things like `SELECT count(*)` aren't associated with any particular `Field`\n and thus will not have an `:id`.\n\n Now maybe these should be two different schemas, but `:id` being there or not is the only real difference; besides\n that they are largely compatible. So they're the same for now. We can revisit this in the future if we actually want\n to differentiate between the two versions.", + "allOf" : [ { + "type" : "object", + "properties" : { + "visibility-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.visibility-type" + }, + "fk-join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "lib/external-remap" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.remapping.external" + }, + "inherited-temporal-unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + }, + "lib/source-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.source-column-alias" + }, + "database-type" : { + "type" : "string" + }, + "lib/type" : { + "default" : "metadata/column", + "const" : "metadata/column" + }, + "fingerprint" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.fingerprint" + }, + "display-name" : { + "type" : "string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "effective-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/deduplicated-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.deduplicated-name" + }, + "base-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/original-expression-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "fk-field-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "type" : "string" + }, + "lib/card-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.card" + }, + "lib/expression-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "lib/breakout?" : { + "type" : "boolean" + }, + "metabase.lib.field/temporal-unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + }, + "metabase.lib.field/binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning" + }, + "lib/model-display-name" : { + "type" : "string" + }, + "has-field-values" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.has-field-values" + }, + "lib/internal-remap" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.remapping.internal" + }, + "selected?" : { + "type" : "boolean" + }, + "source-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.legacy-source" + }, + "metabase.lib.join/join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + }, + "fk-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "lib/original-binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning" + }, + "lib/original-join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + }, + "lib/original-display-name" : { + "type" : "string" + }, + "lib/source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.source" + }, + "active" : { + "type" : "boolean" + }, + "lib/ref-display-name" : { + "type" : "string" + }, + "lib/original-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.original-name" + }, + "lib/hack-original-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.original-name" + }, + "semantic-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + }, + "fk-target-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "field-ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Reference" + }, + "lib/desired-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.desired-column-alias" + } + }, + "required" : [ "lib/type", "name", "base-type" ] + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.kebab-cased-map" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-expression-source" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-native-column" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-table-defaults-column" + } ] + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.legacy-column-metadata" + } ] + }, + "metabase.lib.schema.metadata.original-name" : { + "type" : "string", + "description" : "The original name of the column as it appeared in the very first place it came from (i.e., the physical name of the\n column in the table it appears in). This should be the same as the `:lib/source-column-alias` for the very first\n usage of the column.\n Allowed to be blank because some databases like SQL Server allow blank column names.", + "optional" : true + }, + "metabase.lib.schema.metadata.source-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "metabase.lib.schema.parameter..dimension.target" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.legacy-field-ref" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.legacy-expression-ref" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.template-tag" + } ] + }, + "metabase.lib.schema.parameter.DimensionOptions" : { + "type" : "object", + "properties" : { + "stage-number" : { + "type" : "integer" + } + } + }, + "metabase.lib.schema.parameter.dimension" : { }, + "metabase.lib.schema.parameter.legacy-expression-ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.expression" + }, + "metabase.lib.schema.parameter.legacy-field-ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + }, + "metabase.lib.schema.parameter.parameter" : { + "type" : "object", + "properties" : { + "default" : { }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { }, + "slug" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "target" : { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.target" + }, + "type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.type" + }, + "value" : { } + }, + "required" : [ "type" ] + }, + "metabase.lib.schema.parameter.target" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.legacy-field-ref" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.dimension" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.variable" + } ] + }, + "metabase.lib.schema.parameter.template-tag" : { + "type" : "array", + "prefixItems" : [ { + "const" : "template-tag" + }, { + "oneOf" : [ { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + } + }, + "required" : [ "id" ] + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + } ] + } ] + }, + "metabase.lib.schema.parameter.type" : { + "type" : "string", + "enum" : [ "category", "date", "string/!=", "number/=", "string/ends-with", "location/state", "boolean/=", "number/between", "date/all-options", "number", "number/>=", "location/country", "temporal-unit", "string/=", "string/does-not-contain", "date/range", "string/starts-with", "string/contains", "date/single", "location/city", "id", "date/relative", "location/zip_code", "date/month-year", "date/quarter-year", "number/!=", "boolean", "text", "number/<=" ] + }, + "metabase.lib.schema.parameter.variable" : { + "type" : "array", + "prefixItems" : [ { + "const" : "variable" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.template-tag" + } ] + }, + "metabase.lib.schema.parameter.widget-type" : { + "type" : "string", + "enum" : [ "none", "category", "date", "string/!=", "number/=", "string/ends-with", "location/state", "boolean/=", "number/between", "date/all-options", "number", "number/>=", "location/country", "temporal-unit", "string/=", "string/does-not-contain", "date/range", "string/starts-with", "string/contains", "date/single", "location/city", "id", "date/relative", "location/zip_code", "date/month-year", "date/quarter-year", "number/!=", "boolean", "text", "number/<=" ] + }, + "metabase.lib.schema.template-tag..raw-value.type" : { + "type" : "string", + "enum" : [ "date", "number", "boolean", "text" ] + }, + "metabase.lib.schema.temporal-bucketing.unit" : { + "type" : "string", + "enum" : [ "quarter", "day", "hour", "week", "second", "default", "day-of-week", "hour-of-day", "month", "month-of-year", "day-of-month", "year", "day-of-year", "millisecond", "year-of-era", "second-of-minute", "week-of-year", "quarter-of-year", "minute-of-hour", "minute" ] + }, + "metabase.logger.api.log-level" : { + "type" : "string", + "enum" : [ "off", "fatal", "error", "warn", "info", "debug", "trace" ] + }, + "metabase.logger.api.time-unit" : { + "type" : "string", + "enum" : [ "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds" ] + }, + "metabase.notification.models.FullyHydratedNotification" : { + "description" : "Fully hydrated notification.", + "oneOf" : [ { + "oneOf" : [ { + "type" : "object", + "properties" : { + "creator" : { + "type" : "object", + "properties" : { } + }, + "handlers" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "active" : { + "type" : "boolean" + }, + "channel" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.Channel" + }, + "channel_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "channel_type" : { }, + "notification_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "recipients" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationRecipient" + } + }, + "template" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.ChannelTemplate" + }, + "template_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "channel_type" ] + } + }, + "payload" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" + }, + "payload_id" : { + "type" : "null" + }, + "payload_type" : { + "type" : "string", + "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] + }, + "subscriptions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription" + } + } + }, + "required" : [ "payload_type", "payload" ] + }, { + "type" : "object", + "properties" : { + "creator" : { + "type" : "object", + "properties" : { } + }, + "handlers" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "active" : { + "type" : "boolean" + }, + "channel" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.Channel" + }, + "channel_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "channel_type" : { }, + "notification_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "recipients" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationRecipient" + } + }, + "template" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.ChannelTemplate" + }, + "template_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "channel_type" ] + } + }, + "payload_id" : { + "type" : "null" + }, + "payload_type" : { + "type" : "string", + "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] + }, + "subscriptions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription" + } + } + }, + "required" : [ "payload_type" ] + } ] + }, { + "oneOf" : [ { + "type" : "object", + "properties" : { + "creator" : { + "type" : "object", + "properties" : { } + }, + "creator_id" : { + "type" : "integer" + }, + "handlers" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "active" : { + "type" : "boolean" + }, + "channel" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.Channel" + }, + "channel_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "channel_type" : { }, + "notification_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "recipients" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationRecipient" + } + }, + "template" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.ChannelTemplate" + }, + "template_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "channel_type" ] + } + }, + "payload" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" + }, + "payload_id" : { + "type" : "integer" + }, + "payload_type" : { + "type" : "string", + "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] + }, + "subscriptions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription" + } + } + }, + "required" : [ "payload_type", "payload" ] + }, { "type" : "object", "properties" : { "creator" : { "type" : "object", "properties" : { } }, + "creator_id" : { + "type" : "integer" + }, "handlers" : { "type" : "array", "items" : { @@ -1357,11 +4480,8 @@ "required" : [ "channel_type" ] } }, - "payload" : { - "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" - }, "payload_id" : { - "type" : "null" + "type" : "integer" }, "payload_type" : { "type" : "string", @@ -1374,8 +4494,8 @@ } } }, - "required" : [ "payload_type", "payload" ] - }, { } ] + "required" : [ "payload_type" ] + } ] }, { "oneOf" : [ { "type" : "object", @@ -1384,9 +4504,6 @@ "type" : "object", "properties" : { } }, - "creator_id" : { - "type" : "integer" - }, "handlers" : { "type" : "array", "items" : { @@ -1430,13 +4547,6 @@ "payload" : { "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" }, - "payload_id" : { - "type" : "integer" - }, - "payload_type" : { - "type" : "string", - "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] - }, "subscriptions" : { "type" : "array", "items" : { @@ -1444,10 +4554,8 @@ } } }, - "required" : [ "payload_type", "payload" ] - }, { } ] - }, { - "oneOf" : [ { + "required" : [ "payload" ] + }, { "type" : "object", "properties" : { "creator" : { @@ -1494,18 +4602,14 @@ "required" : [ "channel_type" ] } }, - "payload" : { - "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" - }, "subscriptions" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription" } } - }, - "required" : [ "payload" ] - }, { } ] + } + } ] } ] }, "metabase.notification.models.Notification" : { @@ -1821,6 +4925,16 @@ } } }, + "metabase.timeline.api.timeline.Timeline" : { + "type" : "object", + "properties" : { + "id" : { + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "id" ] + }, "metabase.timeline.api.timeline.include" : { "type" : "string", "enum" : [ "events" ] @@ -1880,6 +4994,18 @@ } }, "required" : [ "schedule_type" ] + }, + "metabot.reaction.redirect" : { + "type" : "object", + "properties" : { + "type" : { + "const" : "metabot.reaction/redirect" + }, + "url" : { + "type" : "string" + } + }, + "required" : [ "type", "url" ] } } }, @@ -1898,12 +5024,34 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] }, "post" : { "summary" : "POST /api/action/", "description" : "Create a new action.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2008,6 +5156,17 @@ "summary" : "GET /api/action/public", "description" : "Fetch a list of Actions with public UUIDs. These actions are publicly-accessible *if* public sharing is enabled.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] } }, @@ -2025,6 +5184,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] }, "delete" : { @@ -2040,6 +5210,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] } }, @@ -2065,6 +5246,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] } }, @@ -2082,6 +5274,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2201,6 +5404,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2234,6 +5448,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] }, "delete" : { @@ -2249,6 +5474,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] } }, @@ -2257,6 +5493,17 @@ "summary" : "GET /api/activity/most_recently_viewed_dashboard", "description" : "Get the most recently viewed dashboard for the current user. Returns a 204 if the user has not viewed any dashboards\n in the last 24 hours.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/activity" ] } }, @@ -2265,6 +5512,17 @@ "summary" : "GET /api/activity/popular_items", "description" : "Get the list of 5 popular things on the instance. Query takes 8 and limits to 5 so that if it finds anything\n archived, deleted, etc it can usually still get 5. ", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/activity" ] } }, @@ -2273,6 +5531,17 @@ "summary" : "GET /api/activity/recent_views", "description" : "Get a list of 100 models (cards, models, tables, dashboards, and collections) that the current user has been viewing most\n recently. Return a maximum of 20 model of each, if they've looked at at least 20.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/activity" ] } }, @@ -2300,12 +5569,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/activity" ] }, "post" : { "summary" : "POST /api/activity/recents", "description" : "Adds a model to the list of recently selected items.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2356,6 +5647,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/alert" ] } }, @@ -2373,6 +5675,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/alert" ] } }, @@ -2390,6 +5703,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/alert" ] } }, @@ -2398,6 +5722,17 @@ "summary" : "GET /api/analytics/anonymous-stats", "description" : "Anonymous usage stats. Endpoint for testing, and eventually exposing this to instance admins to let them see\n what is being phoned home.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/analytics" ] } }, @@ -2406,6 +5741,17 @@ "summary" : "POST /api/api-key/", "description" : "Create a new API key (and an associated `User`) with the provided name and group ID.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2433,6 +5779,17 @@ "summary" : "GET /api/api-key/", "description" : "Get a list of API keys with the default scope. Non-paginated.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/api-key" ] } }, @@ -2441,6 +5798,17 @@ "summary" : "GET /api/api-key/count", "description" : "Get the count of API keys in the DB with the default scope.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/api-key" ] } }, @@ -2458,6 +5826,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2493,6 +5872,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/api-key" ] } }, @@ -2510,6 +5900,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/api-key" ] } }, @@ -2527,6 +5928,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2549,6 +5961,17 @@ "type" : "integer" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2577,6 +6000,17 @@ } ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2621,6 +6055,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2674,6 +6119,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2729,6 +6185,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2793,6 +6260,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2840,6 +6318,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2856,6 +6345,17 @@ "enum" : [ "adhoc", "transform", "table", "question", "field", "segment", "model" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2905,6 +6405,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2963,6 +6474,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2971,6 +6493,17 @@ "summary" : "GET /api/bookmark/", "description" : "Fetch all bookmarks for the user", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bookmark" ] } }, @@ -2979,6 +6512,17 @@ "summary" : "PUT /api/bookmark/ordering", "description" : "Sets the order of bookmarks for user.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3034,6 +6578,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bookmark" ] }, "delete" : { @@ -3057,6 +6612,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bookmark" ] } }, @@ -3065,6 +6631,17 @@ "summary" : "GET /api/bug-reporting/connection-pool-details", "description" : "Returns database connection pool info for the current Metabase instance.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bug-reporting" ] } }, @@ -3073,6 +6650,17 @@ "summary" : "GET /api/bug-reporting/details", "description" : "Returns version and system information relevant to filing a bug report against Metabase.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bug-reporting" ] } }, @@ -3112,12 +6700,34 @@ }, "description" : "Model id to get configuration for." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cache" ] }, "put" : { "summary" : "PUT /api/cache/", "description" : "Store cache configuration.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3148,6 +6758,17 @@ "summary" : "DELETE /api/cache/", "description" : "Delete cache configurations.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3227,6 +6848,17 @@ }, "description" : "A list of question ids" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cache" ] } }, @@ -3253,12 +6885,34 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] }, "post" : { "summary" : "POST /api/card/", "description" : "Create a new `Card`. Card `type` can be `question`, `metric`, or `model`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3348,6 +7002,17 @@ "summary" : "POST /api/card/collections", "description" : "Bulk update endpoint for Card Collections. Move a set of `Cards` with `card_ids` into a `Collection` with\n `collection_id`, or remove them from any Collections by passing a `null` `collection_id`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3381,6 +7046,17 @@ "summary" : "GET /api/card/embeddable", "description" : "Fetch a list of Cards where `enable_embedding` is `true`. The cards can be embedded using the embedding endpoints\n and a signed JWT.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3398,6 +7074,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3420,6 +7107,17 @@ "summary" : "GET /api/card/public", "description" : "Fetch a list of Cards with public UUIDs. These cards are publicly-accessible *if* public sharing is enabled.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3453,6 +7151,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3478,6 +7187,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3495,6 +7215,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] }, "delete" : { @@ -3510,6 +7241,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3522,11 +7264,28 @@ "name" : "card-id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3575,6 +7334,17 @@ "$ref" : "#/components/schemas/metabase.query-processor.schema.export-format" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3614,10 +7384,16 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } }, { "in" : "query", "name" : "ignore_view", @@ -3634,6 +7410,17 @@ "enum" : [ "collection" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] }, "put" : { @@ -3656,6 +7443,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3757,6 +7555,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3774,6 +7583,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3791,6 +7611,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3822,6 +7653,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3834,11 +7676,28 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3876,6 +7735,17 @@ "required" : false, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3884,6 +7754,17 @@ "summary" : "POST /api/cards/dashboards", "description" : "Get the dashboards that multiple cards appear in. The response is a sequence of maps, each of which has a `card_id`\n and `dashboards`. `dashboard` may include an `:error` key, either `:unreadable-dashboard` or\n `:unwritable-dashboard`. In the case of an `unreadable-dashboard` the dashboard details (name, ID) will NOT be\n present.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3912,6 +7793,17 @@ "summary" : "POST /api/cards/move", "description" : "Moves a number of Cards to a single collection or dashboard.\n\n For now, just either succeed or fail as a batch - we can think more about error handling later down the road.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3950,6 +7842,17 @@ "summary" : "GET /api/channel/", "description" : "Get all channels", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3971,6 +7874,17 @@ "summary" : "POST /api/channel/", "description" : "Create a channel", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4010,6 +7924,17 @@ "summary" : "POST /api/channel/test", "description" : "Test a channel connection", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4046,6 +7971,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/channel" ] }, "put" : { @@ -4061,6 +7997,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4098,12 +8045,34 @@ "summary" : "POST /api/cloud-migration/", "description" : "Initiate a new cloud migration.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cloud-migration" ] }, "get" : { "summary" : "GET /api/cloud-migration/", "description" : "Get the latest cloud migration, if any.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cloud-migration" ] } }, @@ -4112,6 +8081,17 @@ "summary" : "PUT /api/cloud-migration/cancel", "description" : "Cancel any ongoing cloud migrations, if any.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cloud-migration" ] } }, @@ -4152,12 +8132,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] }, "post" : { "summary" : "POST /api/collection/", "description" : "Create a new Collection.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4207,6 +8209,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] }, "put" : { @@ -4229,6 +8242,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4269,6 +8293,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4277,6 +8312,24 @@ "summary" : "GET /api/collection/root/dashboard-question-candidates", "description" : "Find cards in the root collection that can be moved into dashboards in the root collection. (Same as the above\n endpoint, but for the root collection)", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:data -> , :name -> , :description -> , :sole_dashboard_info -> , :name -> , :description -> }>}>, :total -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.collections.api.DashboardQuestionCandidatesResponse" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4358,6 +8411,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4366,6 +8430,24 @@ "summary" : "POST /api/collection/root/move-dashboard-question-candidates", "description" : "Move candidate cards to the dashboards they appear in (for the root collection)", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:moved -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.collections.api.MoveDashboardQuestionCandidatesResponse" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4395,6 +8477,17 @@ "summary" : "GET /api/collection/trash", "description" : "Fetch the trash collection, as in `/api/collection/:trash-id`", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4444,6 +8537,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4456,11 +8560,28 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] }, "put" : { @@ -4476,6 +8597,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4526,6 +8658,24 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "map where {:data -> , :name -> , :description -> , :sole_dashboard_info -> , :name -> , :description -> }>}>, :total -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.collections.api.DashboardQuestionCandidatesResponse" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4538,10 +8688,16 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } }, { "in" : "query", "name" : "models", @@ -4609,6 +8765,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4626,6 +8793,24 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "map where {:moved -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.collections.api.MoveDashboardQuestionCandidatesResponse" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4663,12 +8848,34 @@ "enum" : [ "all", "mine", "archived" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "post" : { "summary" : "POST /api/dashboard/", "description" : "Create a new Dashboard.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4717,6 +8924,17 @@ "summary" : "GET /api/dashboard/embeddable", "description" : "Fetch a list of Dashboards where `enable_embedding` is `true`. The dashboards can be embedded using the embedding\n endpoints and a signed JWT.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4749,6 +8967,17 @@ } } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4784,6 +9013,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4822,6 +9062,17 @@ "summary" : "GET /api/dashboard/public", "description" : "Fetch a list of Dashboards with public UUIDs. These dashboards are publicly-accessible *if* public sharing is\n enabled.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4830,6 +9081,17 @@ "summary" : "POST /api/dashboard/save", "description" : "Save a denormalized description of dashboard.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4847,6 +9109,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4882,6 +9155,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4958,6 +9242,17 @@ "$ref" : "#/components/schemas/metabase.query-processor.schema.export-format" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5036,6 +9331,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "post" : { @@ -5060,6 +9366,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5092,6 +9409,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "delete" : { @@ -5107,6 +9435,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5124,6 +9463,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5169,11 +9519,28 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "delete" : { @@ -5189,6 +9556,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "put" : { @@ -5204,6 +9582,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5370,6 +9759,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5477,6 +9877,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5508,6 +9919,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5533,6 +9955,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5550,6 +9983,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5562,11 +10006,28 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5584,6 +10045,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5649,12 +10121,34 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] }, "post" : { "summary" : "POST /api/database/", "description" : "Add a new `Database`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5713,6 +10207,17 @@ "summary" : "POST /api/database/sample_database", "description" : "Add the sample database as a new `Database`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -5721,6 +10226,17 @@ "summary" : "POST /api/database/validate", "description" : "Validate that we can connect to a database given a set of details.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5787,6 +10303,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] }, "put" : { @@ -5802,6 +10329,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5870,6 +10408,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -5903,6 +10452,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -5935,6 +10495,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -5952,6 +10523,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -5969,6 +10551,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -5986,6 +10579,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6003,6 +10607,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6020,6 +10635,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6069,6 +10695,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6086,6 +10723,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6119,6 +10767,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6152,6 +10811,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6185,6 +10855,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6202,6 +10883,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6219,6 +10911,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6236,6 +10939,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6244,6 +10958,17 @@ "summary" : "GET /api/database/{virtual-db}/datasets", "description" : "Returns a list of all the datasets found for the saved questions virtual database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6252,6 +10977,17 @@ "summary" : "GET /api/database/{virtual-db}/datasets/{schema}", "description" : "Returns a list of Tables for the datasets virtual database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6260,6 +10996,17 @@ "summary" : "GET /api/database/{virtual-db}/metadata", "description" : "Endpoint that provides metadata for the Saved Questions 'virtual' database. Used for fooling the frontend\n and allowing it to treat the Saved Questions virtual DB just like any other database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6268,6 +11015,17 @@ "summary" : "GET /api/database/{virtual-db}/schema/{schema}", "description" : "Returns a list of Tables for the saved questions virtual database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6276,6 +11034,17 @@ "summary" : "GET /api/database/{virtual-db}/schemas", "description" : "Returns a list of all the schemas found for the saved questions virtual database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6284,6 +11053,17 @@ "summary" : "POST /api/dataset/", "description" : "Execute a query and retrieve the results in the usual format. The query will not use the cache.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6306,6 +11086,17 @@ "summary" : "POST /api/dataset/native", "description" : "Fetch a native version of an MBQL query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6335,6 +11126,17 @@ "summary" : "POST /api/dataset/parameter/remapping", "description" : "Return the remapped parameter values for cards or dashboards that are being edited.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6373,6 +11175,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6402,6 +11215,17 @@ "summary" : "POST /api/dataset/parameter/values", "description" : "Return parameter values for cards or dashboards that are being edited.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6431,6 +11255,17 @@ "summary" : "POST /api/dataset/pivot", "description" : "Generate a pivoted dataset for an ad-hoc query", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6456,6 +11291,17 @@ "summary" : "POST /api/dataset/query_metadata", "description" : "Get all of the required query metadata for an ad-hoc query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6488,6 +11334,17 @@ "$ref" : "#/components/schemas/metabase.query-processor.schema.export-format" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6525,6 +11382,17 @@ "summary" : "GET /api/ee/advanced-permissions/application/graph", "description" : "Fetch a graph of Application Permissions.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/advanced-permissions/application" ] }, "put" : { @@ -6547,6 +11415,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6583,6 +11462,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/advanced-permissions/impersonation" ] } }, @@ -6600,6 +11490,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/advanced-permissions/impersonation" ] } }, @@ -6608,6 +11509,17 @@ "summary" : "POST /api/ee/ai-entity-analysis/analyze-chart", "description" : "Analyze a chart image using an AI vision model. This function sends the image data to a separate external AI service for analysis.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6655,6 +11567,17 @@ "summary" : "POST /api/ee/ai-sql-fixer/fix", "description" : "Suggest fixes for a SQL query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6689,6 +11612,17 @@ "summary" : "POST /api/ee/ai-sql-generation/generate", "description" : "Generate a SQL query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6718,6 +11652,17 @@ "summary" : "GET /api/ee/audit-app/user/audit-info", "description" : "Gets audit info for the current user if he has permissions to access the audit collection.\n Otherwise return an empty map.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/audit-app/user" ] } }, @@ -6735,6 +11680,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/audit-app/user" ] } }, @@ -6743,6 +11699,17 @@ "summary" : "POST /api/ee/autodescribe/card/summarize", "description" : "Summarize a question.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6823,6 +11790,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/autodescribe" ] } }, @@ -6831,6 +11809,17 @@ "summary" : "GET /api/ee/billing/", "description" : "Get billing information. This acts as a proxy between `metabase-billing-info-url` and the client,\n using the embedding token and signed in user's email to fetch the billing information.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/billing" ] } }, @@ -6839,6 +11828,17 @@ "summary" : "GET /api/ee/content-translation/csv", "description" : "Provides content translation dictionary in CSV", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/content-translation" ] } }, @@ -6854,6 +11854,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/content-translation" ] } }, @@ -6862,6 +11873,17 @@ "summary" : "POST /api/ee/content-translation/upload-dictionary", "description" : "Upload a CSV of content translations", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -6887,6 +11909,60 @@ "tags" : [ "/api/ee/content-translation" ] } }, + "/api/ee/database-replication/connection/{database-id}" : { + "post" : { + "summary" : "POST /api/ee/database-replication/connection/{database-id}", + "description" : "Create a new PG replication connection for the specified database.", + "parameters" : [ { + "in" : "path", + "name" : "database-id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/database-replication" ] + }, + "delete" : { + "summary" : "DELETE /api/ee/database-replication/connection/{database-id}", + "description" : "Delete PG replication connection for the specified database.", + "parameters" : [ { + "in" : "path", + "name" : "database-id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/database-replication" ] + } + }, "/api/ee/database-routing/destination-database" : { "post" : { "summary" : "POST /api/ee/database-routing/destination-database", @@ -6899,6 +11975,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6951,6 +12038,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6969,11 +12067,111 @@ "tags" : [ "/api/ee/database-routing" ] } }, + "/api/ee/email/override" : { + "put" : { + "summary" : "PUT /api/ee/email/override", + "description" : "Update multiple cloud email Settings. You must be a superuser or have `setting` permission to do this.\n Calling this automatically sets `cloud-smtp-enabled` to true if the settings are valid.", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "email-smtp-host-override" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-password-override" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-port-override" : { + "anyOf" : [ { + "type" : "integer" + }, { + "type" : "null" + } ] + }, + "email-smtp-security-override" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-username-override" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + } + } + } + } + } + }, + "tags" : [ "/api/ee/email" ] + }, + "delete" : { + "summary" : "DELETE /api/ee/email/override", + "description" : "Clear all cloud email related settings. You must be a superuser or have `setting` permission to do this.", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/email" ] + } + }, "/api/ee/gsheets/connection" : { "post" : { "summary" : "POST /api/ee/gsheets/connection", "description" : "Hook up a new google drive folder or sheet that will be watched and have its content ETL'd into Metabase.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:error -> , :message -> }, or one of , :created_at -> , :sync_started_at -> , :created_by_id -> , :db_id -> } | active = map where {:url -> , :created_at -> , :last_sync_at -> , :next_sync_at -> , :created_by_id -> , :db_id -> } | error = map where {:url -> , :created_at -> , :error_message -> , :created_by_id -> , :db_id -> }> dispatched by :status", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/gsheets.response" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6996,12 +12194,41 @@ "summary" : "GET /api/ee/gsheets/connection", "description" : "Check the status of a connection. This endpoint gets polled by FE to determine when to\n stop showing the setup widget.\n\n Returns the gsheets shape, with the attached datawarehouse db id at `:db_id`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:error -> , :message -> }, or one of , :created_at -> , :sync_started_at -> , :created_by_id -> , :db_id -> } | active = map where {:url -> , :created_at -> , :last_sync_at -> , :next_sync_at -> , :created_by_id -> , :db_id -> } | error = map where {:url -> , :created_at -> , :error_message -> , :created_by_id -> , :db_id -> }> dispatched by :status", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/gsheets.response" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/gsheets" ] }, "delete" : { "summary" : "DELETE /api/ee/gsheets/connection", "description" : "Disconnect the google service account. There is only one (or zero) at the time of writing.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/gsheets" ] } }, @@ -7010,6 +12237,17 @@ "summary" : "POST /api/ee/gsheets/connection/sync", "description" : "Force a sync of the connection now.\n\n Returns the gsheets shape, with the attached datawarehouse db id at `:db_id`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/gsheets" ] } }, @@ -7018,6 +12256,30 @@ "summary" : "GET /api/ee/gsheets/service-account", "description" : "Checks to see if service-account is setup or not, delegates to HM only if we haven't set it from a metabase cluster\n before.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:email -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "email" : { + "type" : "string" + } + }, + "required" : [ ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/gsheets" ] } }, @@ -7035,6 +12297,17 @@ }, "description" : "Must be a string like 2020-04 or 2222-11." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/logs" ] } }, @@ -7043,6 +12316,32 @@ "summary" : "POST /api/ee/metabot-tools/answer-sources", "description" : "Return top level meta information about available information sources.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7071,6 +12370,35 @@ "summary" : "POST /api/ee/metabot-tools/create-dashboard-subscription", "description" : "Create a dashboard subscription.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:output -> , :conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "output" : { + "type" : "string" + } + }, + "required" : [ "output", "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7099,6 +12427,32 @@ "summary" : "POST /api/ee/metabot-tools/field-values", "description" : "Return statistics and/or values for a given field of a given entity.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7127,6 +12481,32 @@ "summary" : "POST /api/ee/metabot-tools/filter-records", "description" : "Construct a query from a metric.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7155,6 +12535,32 @@ "summary" : "POST /api/ee/metabot-tools/find-metric", "description" : "Find a metric matching a description.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7189,6 +12595,32 @@ "summary" : "POST /api/ee/metabot-tools/find-outliers", "description" : "Find outliers in the values provided by a data source for a given column.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7217,6 +12649,41 @@ "summary" : "POST /api/ee/metabot-tools/generate-insights", "description" : "Generate insights.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:output -> , :reactions -> , :url -> }>, :conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "output" : { + "type" : "string" + }, + "reactions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabot.reaction.redirect" + } + } + }, + "required" : [ "output", "reactions", "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7245,6 +12712,32 @@ "summary" : "POST /api/ee/metabot-tools/get-current-user", "description" : "Get information about user that started the conversation.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7262,6 +12755,32 @@ "summary" : "POST /api/ee/metabot-tools/get-dashboard-details", "description" : "Get information about a given dashboard.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7296,6 +12815,32 @@ "summary" : "POST /api/ee/metabot-tools/get-metric-details", "description" : "Get information about a given metric.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7324,6 +12869,32 @@ "summary" : "POST /api/ee/metabot-tools/get-query-details", "description" : "Get information about a given query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7359,6 +12930,32 @@ "summary" : "POST /api/ee/metabot-tools/get-report-details", "description" : "Get information about a given report.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7387,6 +12984,32 @@ "summary" : "POST /api/ee/metabot-tools/get-table-details", "description" : "Get information about a given table or model.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7415,6 +13038,32 @@ "summary" : "POST /api/ee/metabot-tools/query-metric", "description" : "Construct a query from a metric.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7443,6 +13092,32 @@ "summary" : "POST /api/ee/metabot-tools/query-model", "description" : "Construct a query from a model.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7471,6 +13146,17 @@ "summary" : "GET /api/ee/metabot-v3/metabot/", "description" : "List configured metabot instances", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7487,6 +13173,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7503,6 +13200,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] }, "put" : { @@ -7517,6 +13225,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7578,6 +13297,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7617,6 +13347,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] }, "delete" : { @@ -7631,6 +13372,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7647,6 +13399,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7671,6 +13434,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7679,6 +13453,17 @@ "summary" : "POST /api/ee/metabot-v3/v2/agent", "description" : "Send a chat message to the LLM via the AI Service.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7721,6 +13506,17 @@ "summary" : "POST /api/ee/metabot-v3/v2/agent-streaming", "description" : "Send a chat message to the LLM via the AI Proxy.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7758,48 +13554,39 @@ "tags" : [ "/api/ee/metabot-v3" ] } }, - "/api/ee/permission_debug/" : { - "get" : { - "summary" : "GET /api/ee/permission_debug/", - "description" : "This endpoint expects a `user_id`, a `model_id` to debug permissions against, and `action_type`.\n The type of model we are debugging against is inferred by the `action_type`.\n\n It will return:\n - `decision`: The overall permission decision (\"allow\", \"denied\", or \"limited\")\n - `model-type`: The type of model being checked (e.g., \"question\")\n - `model-id`: The ID of the model being checked\n - `segment`: A set of segmentation types applied (e.g., \"sandboxed\", \"impersonated\", \"routed\")\n - `message`: A sequence of strings explaining the decision\n - `data`: A map containing details about permissions (table or collection names to group names)\n - `suggestions`: A map of group IDs to group names that could provide access\n\n Example requests:\n - Check if user can read a card: `GET /api/ee/permission_debug?user_id=123&model_id=456&action_type=card/read`\n - Check if user can query a card: `GET /api/ee/permission_debug?user_id=123&model_id=456&action_type=card/query`\n - Check if user can download data: `GET /api/ee/permission_debug?user_id=123&model_id=456&action_type=card/download-data`\n\n Example responses:\n - Allowed access:\n ```json\n {\n \"decision\": \"allow\",\n \"model-type\": \"question\",\n \"model-id\": \"456\",\n \"segment\": [],\n \"message\": [\"User has permission to read this card\"],\n \"data\": {},\n \"suggestions\": {}\n }\n ```\n - Denied access with blocked table:\n ```json\n {\n \"decision\": \"denied\",\n \"model-type\": \"question\",\n \"model-id\": \"456\",\n \"segment\": [],\n \"message\": [\"User does not have permission to query this card\"],\n \"data\": {\"sample-db.PUBLIC.ORDERS\": [\"All Users\"]},\n \"suggestions\": {}\n }\n ```\n - Limited access:\n ```json\n {\n \"decision\": \"limited\",\n \"model-type\": \"question\",\n \"model-id\": \"456\",\n \"segment\": [],\n \"message\": [\"User has permission to download some data from this card\"],\n \"data\": {},\n \"suggestions\": {}\n }\n ```", - "parameters" : [ { - "in" : "query", - "name" : "user_id", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1 - } - }, { - "in" : "query", - "name" : "model_id", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "in" : "query", - "name" : "action_type", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ "card/read", "card/query", "card/download-data" ] - } - } ], - "tags" : [ "/api/ee/permission_debug" ] - } - }, "/api/ee/scim/api_key" : { "get" : { "summary" : "GET /api/ee/scim/api_key", "description" : "Fetch the SCIM API key if one exists. Does *not* return an unmasked key, since we don't have access\n to that after it is created.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim" ] }, "post" : { "summary" : "POST /api/ee/scim/api_key", "description" : "Create a new SCIM API key, or refresh one that already exists. When called for the first time,\n this is equivalent to enabling SCIM.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim" ] } }, @@ -7834,12 +13621,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] }, "post" : { "summary" : "POST /api/ee/scim/v2/Groups", "description" : "Create a single group, and populates it if necessary.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7900,12 +13709,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] }, "put" : { "summary" : "PUT /api/ee/scim/v2/Groups/{id}", "description" : "Update a group.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7964,6 +13795,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] } }, @@ -7998,12 +13840,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] }, "post" : { "summary" : "POST /api/ee/scim/v2/Users", "description" : "Create a single user.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8107,12 +13971,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] }, "put" : { "summary" : "PUT /api/ee/scim/v2/Users/{id}", "description" : "Update a user.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8214,6 +14100,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8346,7 +14243,18 @@ "default" : false, "type" : "boolean" } - } ], + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/serialization" ] } }, @@ -8371,6 +14279,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -8455,6 +14374,17 @@ "enum" : [ "asc", "desc" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/stale" ] } }, @@ -8463,6 +14393,17 @@ "summary" : "GET /api/ee/upload-management/tables", "description" : "Get all `Tables` visible to the current user which were created by uploading a file.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/upload-management" ] } }, @@ -8488,6 +14429,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/upload-management" ] } }, @@ -8496,6 +14448,17 @@ "summary" : "POST /api/eid-translation/translate", "description" : "Translate entity IDs to model IDs.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8520,12 +14483,59 @@ "summary" : "PUT /api/email/", "description" : "Update multiple email Settings. You must be a superuser or have `setting` permission to do this.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", - "properties" : { } + "properties" : { + "email-smtp-host" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-password" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-port" : { + "anyOf" : [ { + "type" : "integer" + }, { + "type" : "null" + } ] + }, + "email-smtp-security" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-username" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + } + } } } } @@ -8536,6 +14546,17 @@ "summary" : "DELETE /api/email/", "description" : "Clear all email related settings. You must be a superuser or have `setting` permission to do this.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/email" ] } }, @@ -8544,6 +14565,17 @@ "summary" : "POST /api/email/test", "description" : "Send a test email using the SMTP Settings. You must be a superuser or have `setting` permission to do this.\n Returns `{:ok true}` if we were able to send the message successfully, otherwise a standard 400 error response.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/email" ] } }, @@ -8559,6 +14591,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8588,6 +14631,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8596,6 +14650,17 @@ "summary" : "GET /api/embed/card/{token}/params/{param-key}/search/{prefix}", "description" : "Embedded version of chain filter search endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8618,6 +14683,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8633,6 +14709,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8671,6 +14758,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8686,6 +14784,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8719,6 +14828,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8768,6 +14888,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8776,6 +14907,17 @@ "summary" : "GET /api/embed/dashboard/{token}/params/{param-key}/remapping", "description" : "Embedded version of the remapped dashboard param value endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8784,6 +14926,17 @@ "summary" : "GET /api/embed/dashboard/{token}/params/{param-key}/search/{prefix}", "description" : "Embedded version of chain filter search endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8806,6 +14959,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8821,6 +14985,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8854,6 +15029,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8915,6 +15101,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8994,6 +15191,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -9019,6 +15227,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] }, "put" : { @@ -9034,6 +15253,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9111,6 +15341,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9151,6 +15392,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9168,6 +15420,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9185,6 +15448,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9219,6 +15493,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9236,6 +15521,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9270,6 +15566,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9287,6 +15594,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9304,6 +15622,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] }, "post" : { @@ -9319,6 +15648,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9362,6 +15702,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/geojson" ] } }, @@ -9378,6 +15729,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/geojson" ] } }, @@ -9386,6 +15748,17 @@ "summary" : "PUT /api/google/settings", "description" : "Update Google Sign-In related settings. You must be a superuser to do this.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9414,6 +15787,17 @@ "summary" : "PUT /api/ldap/settings", "description" : "Update LDAP related settings. You must be a superuser to do this.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9446,6 +15830,17 @@ "summary" : "POST /api/logger/adjustment", "description" : "Temporarily adjust the log levels.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9471,6 +15866,17 @@ "summary" : "DELETE /api/logger/adjustment", "description" : "Undo any log level adjustments.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/logger" ] } }, @@ -9479,6 +15885,17 @@ "summary" : "GET /api/logger/logs", "description" : "Logs.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/logger" ] } }, @@ -9487,6 +15904,51 @@ "summary" : "GET /api/logger/presets", "description" : "Get all known presets.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "sequence of map where {:id -> , :display_name -> , :loggers -> , :level -> }>}", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "display_name" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "loggers" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "level" : { + "$ref" : "#/components/schemas/metabase.logger.api.log-level" + }, + "name" : { + "type" : "string" + } + }, + "required" : [ "name", "level" ] + } + } + }, + "required" : [ "id", "display_name", "loggers" ] + } + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/logger" ] } }, @@ -9495,6 +15957,17 @@ "summary" : "GET /api/login-history/current", "description" : "Fetch recent logins for the current user.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/login-history" ] } }, @@ -9503,6 +15976,17 @@ "summary" : "POST /api/model-index/", "description" : "Create ModelIndex.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9537,6 +16021,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/model-index" ] } }, @@ -9554,6 +16049,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/model-index" ] }, "delete" : { @@ -9569,6 +16075,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/model-index" ] } }, @@ -9577,6 +16094,17 @@ "summary" : "POST /api/moderation-review/", "description" : "Create a new `ModerationReview`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9630,12 +16158,34 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/mt/gtap" ] }, "post" : { "summary" : "POST /api/mt/gtap/", "description" : "Create a new GTAP.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9672,6 +16222,17 @@ "summary" : "POST /api/mt/gtap/validate", "description" : "Validate a sandbox which may not have yet been saved. This runs the same validation that is performed when the\n sandbox is saved, but doesn't actually save the sandbox.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9711,6 +16272,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/mt/gtap" ] }, "put" : { @@ -9726,6 +16298,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9758,6 +16341,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/mt/gtap" ] } }, @@ -9766,6 +16360,17 @@ "summary" : "GET /api/mt/user/attributes", "description" : "Fetch a list of possible keys for User `login_attributes`. This just looks at keys that have already been set for\n existing Users and returns those. ", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/mt/user" ] } }, @@ -9783,6 +16388,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9815,12 +16431,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/native-query-snippet" ] }, "post" : { "summary" : "POST /api/native-query-snippet/", "description" : "Create a new `NativeQuerySnippet`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9864,6 +16502,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/native-query-snippet" ] }, "put" : { @@ -9879,6 +16528,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9966,12 +16626,34 @@ "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/notification" ] }, "post" : { "summary" : "POST /api/notification/", "description" : "Create a new notification, return the created notification.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9989,6 +16671,17 @@ "summary" : "POST /api/notification/send", "description" : "Send an unsaved notification.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10006,6 +16699,17 @@ "summary" : "POST /api/notification/unsubscribe/", "description" : "Allow non-users to unsubscribe from notifications, with the hash given through email.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10037,6 +16741,17 @@ "summary" : "POST /api/notification/unsubscribe/undo", "description" : "Allow non-users to undo an unsubscribe from notifications, with the hash given through email.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10077,6 +16792,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/notification" ] }, "put" : { @@ -10092,6 +16818,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10118,6 +16855,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10154,6 +16902,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/notification" ] } }, @@ -10162,6 +16921,17 @@ "summary" : "POST /api/notify/db/attached_datawarehouse", "description" : "Sync the attached datawarehouse. Can provide in the body:\n - table_name and schema_name: both strings. Will look for an existing table and sync it, otherwise will try to find a\n new table with that name and sync it. If it cannot find a table it will throw an error. If table_name is empty or\n blank, will sync the entire database.\n - synchronous?: is a boolean value to indicate if this should block on the result.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10202,6 +16972,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10243,6 +17024,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10271,6 +17063,17 @@ "summary" : "GET /api/permissions/graph", "description" : "Fetch a graph of all Permissions.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] }, "put" : { @@ -10293,6 +17096,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10320,6 +17134,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10337,6 +17162,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10345,12 +17181,34 @@ "summary" : "GET /api/permissions/group", "description" : "Fetch all `PermissionsGroups`, including a count of the number of `:members` in that group.\n This API requires superuser or group manager of more than one group.\n Group manager is only available if `advanced-permissions` is enabled and returns only groups that user\n is manager of.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] }, "post" : { "summary" : "POST /api/permissions/group", "description" : "Create a new `PermissionsGroup`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10384,6 +17242,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10415,6 +17284,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10432,6 +17312,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10440,12 +17331,34 @@ "summary" : "GET /api/permissions/membership", "description" : "Fetch a map describing the group memberships of various users.\n This map's format is:\n\n { [{:membership_id \n :group_id \n :is_group_manager boolean}]}", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] }, "post" : { "summary" : "POST /api/permissions/membership", "description" : "Add a `User` to a `PermissionsGroup`. Returns updated list of members belonging to the group.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10489,6 +17402,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10506,6 +17430,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10536,6 +17471,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10544,6 +17490,17 @@ "summary" : "GET /api/persist/", "description" : "List the entries of [[PersistedInfo]] in order to show a status page.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10561,6 +17518,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10578,6 +17546,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10595,6 +17574,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10612,6 +17602,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10629,6 +17630,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10646,6 +17658,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10654,6 +17677,17 @@ "summary" : "POST /api/persist/disable", "description" : "Disable global setting to allow databases to persist models. This will remove all tasks to refresh tables, remove\n that option from databases which might have it enabled, and delete all cached tables.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10662,6 +17696,17 @@ "summary" : "POST /api/persist/enable", "description" : "Enable global setting to allow databases to persist models.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10670,6 +17715,17 @@ "summary" : "POST /api/persist/set-refresh-schedule", "description" : "Set the cron schedule to refresh persisted models.\n Shape should be JSON like {cron: \"0 30 1/8 * * ? *\"}.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10704,6 +17760,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10712,6 +17779,17 @@ "summary" : "GET /api/premium-features/token/status", "description" : "Fetch info about the current Premium-Features premium features token including whether it is `valid`, a `trial` token, its\n `features`, when it is `valid-thru`, and the `status` of the account.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/premium-features" ] } }, @@ -10728,6 +17806,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10757,6 +17846,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10773,6 +17873,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10789,6 +17900,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10823,6 +17945,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10831,6 +17964,17 @@ "summary" : "GET /api/preview_embed/dashboard/{token}/params/{param-key}/remapping", "description" : "Embedded version of the remapped dashboard param value endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10839,6 +17983,17 @@ "summary" : "GET /api/preview_embed/dashboard/{token}/params/{param-key}/values", "description" : "Embedded version of chain filter values endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10855,6 +18010,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10889,6 +18055,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10897,6 +18074,17 @@ "summary" : "POST /api/product-feedback/", "description" : "Endpoint to provide feedback from the product", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10938,6 +18126,17 @@ }, "description" : "value must be a valid UUID." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -10955,6 +18154,17 @@ }, "description" : "value must be a valid UUID." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10987,6 +18197,17 @@ }, "description" : "value must be a valid UUID." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11017,6 +18238,17 @@ "required" : true, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11050,6 +18282,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11075,6 +18318,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11100,6 +18354,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11148,6 +18413,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11165,6 +18441,17 @@ }, "description" : "value must be a valid UUID." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11208,6 +18495,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11250,6 +18548,17 @@ "$ref" : "#/components/schemas/metabase.query-processor.schema.export-format" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11311,6 +18620,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] }, "post" : { @@ -11335,6 +18655,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11380,6 +18711,17 @@ "required" : true, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11413,6 +18755,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11438,6 +18791,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11481,6 +18845,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11506,6 +18881,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11549,6 +18935,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11612,6 +19009,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11693,6 +19101,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11726,12 +19145,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] }, "post" : { "summary" : "POST /api/pulse/", "description" : "Create a new `Pulse`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11784,6 +19225,17 @@ "summary" : "GET /api/pulse/form_input", "description" : "Provides relevant configuration information and user choices for creating/updating Pulses.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11801,6 +19253,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11818,6 +19281,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11835,6 +19309,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11852,6 +19337,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11860,6 +19356,17 @@ "summary" : "POST /api/pulse/test", "description" : "Test send an unsaved pulse.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11905,6 +19412,17 @@ "summary" : "POST /api/pulse/unsubscribe/", "description" : "Allow non-users to unsubscribe from pulses/subscriptions, with the hash given through email.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11936,6 +19454,17 @@ "summary" : "POST /api/pulse/unsubscribe/undo", "description" : "Allow non-users to undo an unsubscribe from pulses/subscriptions, with the hash given through email.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11976,6 +19505,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] }, "put" : { @@ -11991,6 +19531,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12047,6 +19598,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -12072,6 +19634,17 @@ "enum" : [ "card", "dashboard", "segment" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/revision" ] } }, @@ -12080,6 +19653,17 @@ "summary" : "POST /api/revision/revert", "description" : "Revert an object to a prior revision.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12131,13 +19715,24 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/revision" ] } }, "/api/search/" : { "get" : { "summary" : "GET /api/search/", - "description" : "Search for items in Metabase.\n For the list of supported models, check [[metabase.search.config/all-models]].\n\n Filters:\n - `archived`: set to true to search archived items only, default is false\n - `table_db_id`: search for tables, cards, and models of a certain DB\n - `models`: only search for items of specific models. If not provided, search for all models\n - `filters_items_in_personal_collection`: only search for items in personal collections\n - `created_at`: search for items created at a specific timestamp\n - `created_by`: search for items created by a specific user\n - `last_edited_at`: search for items last edited at a specific timestamp\n - `last_edited_by`: search for items last edited by a specific user\n - `search_native_query`: set to true to search the content of native queries\n - `verified`: set to true to search for verified items only (requires Content Management or Official Collections premium feature)\n - `ids`: search for items with those ids, works iff single value passed to `models`\n\n Note that not all item types support all filters, and the results will include only models that support the provided filters. For example:\n - The `created-by` filter supports dashboards, models, actions, and cards.\n - The `verified` filter supports models and cards.\n\n A search query that has both filters applied will only return models and cards.", + "description" : "Search for items in Metabase.\n For the list of supported models, check [[metabase.search.config/all-models]].\n\n Filters:\n - `archived`: set to true to search archived items only, default is false\n - `table_db_id`: search for tables, cards, and models of a certain DB\n - `models`: only search for items of specific models. If not provided, search for all models\n - `filters_items_in_personal_collection`: only search for items in personal collections\n - `created_at`: search for items created at a specific timestamp\n - `created_by`: search for items created by a specific user\n - `last_edited_at`: search for items last edited at a specific timestamp\n - `last_edited_by`: search for items last edited by a specific user\n - `search_native_query`: set to true to search the content of native queries\n - `verified`: set to true to search for verified items only (requires Content Management or Official Collections premium feature)\n - `ids`: search for items with those ids, works iff single value passed to `models`\n - `display_type`: search for cards/models with specific display types\n - `has_temporal_dimensions`: set to true to search for cards with temporal dimensions only\n\n Note that not all item types support all filters, and the results will include only models that support the provided filters. For example:\n - The `created-by` filter supports dashboards, models, actions, and cards.\n - The `verified` filter supports models and cards.\n\n A search query that has both filters applied will only return models and cards.", "parameters" : [ { "in" : "query", "name" : "q", @@ -12209,6 +19804,24 @@ "minimum" : 1 } } + }, { + "in" : "query", + "name" : "display_type", + "required" : false, + "schema" : { + "type" : "array", + "items" : { + "type" : "string", + "minLength" : 1 + } + } + }, { + "in" : "query", + "name" : "has_temporal_dimensions", + "required" : false, + "schema" : { + "type" : "boolean" + } }, { "in" : "query", "name" : "last_edited_at", @@ -12294,6 +19907,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] } }, @@ -12302,6 +19926,17 @@ "summary" : "POST /api/search/force-reindex", "description" : "This will trigger an immediate reindexing, if we are using search index.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] } }, @@ -12310,6 +19945,17 @@ "summary" : "POST /api/search/re-init", "description" : "This will blow away any search indexes, re-create, and re-populate them.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] } }, @@ -12331,6 +19977,17 @@ "required" : false, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] }, "put" : { @@ -12350,6 +20007,17 @@ "required" : false, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] } }, @@ -12358,6 +20026,17 @@ "summary" : "POST /api/segment/", "description" : "Create a new `Segment`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12393,6 +20072,17 @@ "summary" : "GET /api/segment/", "description" : "Fetch *all* `Segments`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/segment" ] } }, @@ -12410,6 +20100,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/segment" ] }, "put" : { @@ -12425,6 +20126,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12487,6 +20199,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/segment" ] } }, @@ -12504,6 +20227,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/segment" ] } }, @@ -12512,6 +20246,17 @@ "summary" : "POST /api/session/", "description" : "Login.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12538,6 +20283,17 @@ "summary" : "DELETE /api/session/", "description" : "Logout.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/session" ] } }, @@ -12546,6 +20302,17 @@ "summary" : "POST /api/session/forgot_password", "description" : "Send a reset email when user has forgotten their password.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12570,6 +20337,17 @@ "summary" : "POST /api/session/google_auth", "description" : "Login with Google Auth.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12594,6 +20372,17 @@ "summary" : "POST /api/session/password-check", "description" : "Endpoint that checks if the supplied password meets the currently configured password complexity rules.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12626,6 +20415,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/session" ] } }, @@ -12634,6 +20434,17 @@ "summary" : "GET /api/session/properties", "description" : "Get all properties and their values. These are the specific `Settings` that are readable by the current user, or are\n public if no user is logged in.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/session" ] } }, @@ -12642,6 +20453,17 @@ "summary" : "POST /api/session/reset_password", "description" : "Reset password with a reset token.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12670,12 +20492,34 @@ "summary" : "GET /api/setting/", "description" : "Get all `Settings` and their values. You must be a superuser or have `setting` permission to do this.\n For non-superusers, a list of visible settings and values can be retrieved using the /api/session/properties endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/setting" ] }, "put" : { "summary" : "PUT /api/setting/", "description" : "Update multiple `Settings` values. If called by a non-superuser, only user-local settings can be updated.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12701,6 +20545,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/setting" ] }, "put" : { @@ -12714,6 +20569,30 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "value" : { } + }, + "required" : [ "value" ] + } + } + } + }, "tags" : [ "/api/setting" ] } }, @@ -12722,6 +20601,17 @@ "summary" : "POST /api/setup/", "description" : "Special endpoint for creating the first user during setup. This endpoint both creates the user AND logs them in and\n returns a session ID. This endpoint can also be used to add a database, create and invite a second admin, and/or\n set specific settings from the setup flow.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12801,6 +20691,17 @@ "summary" : "GET /api/setup/user_defaults", "description" : "Returns object containing default user details for initial setup, if configured,\n and if the provided token value matches the token in the configuration value.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/setup" ] } }, @@ -12809,6 +20710,17 @@ "summary" : "POST /api/slack/bug-report", "description" : "Send diagnostic information to the configured Slack channels.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12832,6 +20744,17 @@ "summary" : "GET /api/slack/manifest", "description" : "Returns the YAML manifest file that should be used to bootstrap new Slack apps", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/slack" ] } }, @@ -12840,6 +20763,17 @@ "summary" : "PUT /api/slack/settings", "description" : "Update Slack related settings. You must be a superuser to do this. Also updates the slack-cache.\n There are 3 cases where we alter the slack channel/user cache:\n 1. falsy token -> clear\n 2. invalid token -> clear\n 3. truthy, valid token -> refresh ", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12866,12 +20800,34 @@ "summary" : "GET /api/table/", "description" : "Get all `Tables`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] }, "put" : { "summary" : "PUT /api/table/", "description" : "Update all `Table` in `ids`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12932,6 +20888,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -12949,6 +20916,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -12973,6 +20951,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] }, "put" : { @@ -12988,6 +20977,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13043,6 +21043,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -13082,6 +21093,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13099,6 +21121,30 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "map where {:success -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "success" : { + "const" : true + } + }, + "required" : [ "success" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13130,6 +21176,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13171,6 +21228,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13188,6 +21256,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13205,6 +21284,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -13222,104 +21312,413 @@ "required" : [ "filename", "tempfile" ] } }, - "required" : [ "file" ] + "required" : [ "file" ] + } + } + } + }, + "tags" : [ "/api/table" ] + } + }, + "/api/table/{id}/rescan_values" : { + "post" : { + "summary" : "POST /api/table/{id}/rescan_values", + "description" : "Manually trigger an update for the FieldValues for the Fields belonging to this Table. Only applies to Fields that\n are eligible for FieldValues.", + "parameters" : [ { + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/table" ] + } + }, + "/api/table/{id}/sync_schema" : { + "post" : { + "summary" : "POST /api/table/{id}/sync_schema", + "description" : "Trigger a manual update of the schema metadata for this `Table`.", + "parameters" : [ { + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/table" ] + } + }, + "/api/table/{table-id}/data" : { + "get" : { + "summary" : "GET /api/table/{table-id}/data", + "description" : "Get the data for the given table", + "parameters" : [ { + "in" : "path", + "name" : "table-id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/table" ] + } + }, + "/api/task/" : { + "get" : { + "summary" : "GET /api/task/", + "description" : "Fetch a list of recent tasks stored as Task History", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/task" ] + } + }, + "/api/task/info" : { + "get" : { + "summary" : "GET /api/task/info", + "description" : "Return raw data about all scheduled tasks (i.e., Quartz Jobs and Triggers).", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/task" ] + } + }, + "/api/task/unique-tasks" : { + "get" : { + "summary" : "GET /api/task/unique-tasks", + "description" : "Returns possibly empty vector of unique task names in alphabetical order. It is expected that number of unique\n tasks is small, hence no need for pagination. If that changes this endpoint and function that powers it should\n reflect that.", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/task" ] + } + }, + "/api/task/{id}" : { + "get" : { + "summary" : "GET /api/task/{id}", + "description" : "Get `TaskHistory` entry with ID.", + "parameters" : [ { + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/task" ] + } + }, + "/api/testing/echo" : { + "post" : { + "summary" : "POST /api/testing/echo", + "description" : "Simple echo hander. Fails when you POST with `?fail=true`.", + "parameters" : [ { + "in" : "query", + "name" : "fail", + "required" : true, + "schema" : { + "default" : false, + "type" : "boolean" + } + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] + }, + "get" : { + "summary" : "GET /api/testing/echo", + "description" : "Simple echo hander. Fails when you GET with `?fail=true`.", + "parameters" : [ { + "in" : "query", + "name" : "fail", + "required" : true, + "schema" : { + "default" : false, + "type" : "boolean" + } + }, { + "in" : "query", + "name" : "body", + "required" : true, + "schema" : { + "type" : "string" + }, + "description" : "value must be a valid JSON string." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] + } + }, + "/api/testing/mark-stale" : { + "post" : { + "summary" : "POST /api/testing/mark-stale", + "description" : "Mark the card or dashboard as stale", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "date-str" : { + "type" : "string" + }, + "id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "model" : { + "type" : "string" + } + }, + "required" : [ "id", "model" ] } } } }, - "tags" : [ "/api/table" ] + "tags" : [ "/api/testing" ] } }, - "/api/table/{id}/rescan_values" : { + "/api/testing/refresh-caches" : { "post" : { - "summary" : "POST /api/table/{id}/rescan_values", - "description" : "Manually trigger an update for the FieldValues for the Fields belonging to this Table. Only applies to Fields that\n are eligible for FieldValues.", - "parameters" : [ { - "in" : "path", - "name" : "id", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1 + "summary" : "POST /api/testing/refresh-caches", + "description" : "Manually triggers the cache refresh task, if Enterprise code is available.", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" }, - "description" : "value must be an integer greater than zero." - } ], - "tags" : [ "/api/table" ] + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] } }, - "/api/table/{id}/sync_schema" : { + "/api/testing/restore/{name}" : { "post" : { - "summary" : "POST /api/table/{id}/sync_schema", - "description" : "Trigger a manual update of the schema metadata for this `Table`.", + "summary" : "POST /api/testing/restore/{name}", + "description" : "Restore a database snapshot for testing purposes.", "parameters" : [ { "in" : "path", - "name" : "id", + "name" : "name", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "type" : "string", + "minLength" : 1 + } } ], - "tags" : [ "/api/table" ] - } - }, - "/api/table/{table-id}/data" : { - "get" : { - "summary" : "GET /api/table/{table-id}/data", - "description" : "Get the data for the given table", - "parameters" : [ { - "in" : "path", - "name" : "table-id", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1 + "responses" : { + "2XX" : { + "description" : "Successful response" }, - "description" : "value must be an integer greater than zero." - } ], - "tags" : [ "/api/table" ] - } - }, - "/api/task/" : { - "get" : { - "summary" : "GET /api/task/", - "description" : "Fetch a list of recent tasks stored as Task History", - "parameters" : [ ], - "tags" : [ "/api/task" ] - } - }, - "/api/task/info" : { - "get" : { - "summary" : "GET /api/task/info", - "description" : "Return raw data about all scheduled tasks (i.e., Quartz Jobs and Triggers).", - "parameters" : [ ], - "tags" : [ "/api/task" ] + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] } }, - "/api/task/unique-tasks" : { - "get" : { - "summary" : "GET /api/task/unique-tasks", - "description" : "Returns possibly empty vector of unique task names in alphabetical order. It is expected that number of unique\n tasks is small, hence no need for pagination. If that changes this endpoint and function that powers it should\n reflect that.", + "/api/testing/set-time" : { + "post" : { + "summary" : "POST /api/testing/set-time", + "description" : "Make java-time see world at exact time.", "parameters" : [ ], - "tags" : [ "/api/task" ] + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "add-ms" : { + "description" : "value must be an integer.", + "type" : "integer" + }, + "time" : { + "description" : "value must be a valid date string", + "type" : "string" + } + } + } + } + } + }, + "tags" : [ "/api/testing" ] } }, - "/api/task/{id}" : { - "get" : { - "summary" : "GET /api/task/{id}", - "description" : "Get `TaskHistory` entry with ID.", + "/api/testing/snapshot/{name}" : { + "post" : { + "summary" : "POST /api/testing/snapshot/{name}", + "description" : "Snapshot the database for testing purposes.", "parameters" : [ { "in" : "path", - "name" : "id", + "name" : "name", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "type" : "string", + "minLength" : 1 + } } ], - "tags" : [ "/api/task" ] + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] + } + }, + "/api/testing/stats" : { + "post" : { + "summary" : "POST /api/testing/stats", + "description" : "Triggers a send of instance usage stats", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] } }, "/api/tiles/{card-id}/{zoom}/{x}/{y}/{lat-field}/{lon-field}" : { @@ -13382,6 +21781,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/tiles" ] } }, @@ -13463,6 +21873,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/tiles" ] } }, @@ -13479,6 +21900,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/tiles" ] } }, @@ -13487,6 +21919,17 @@ "summary" : "POST /api/timeline-event/", "description" : "Create a new [[TimelineEvent]].", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13554,6 +21997,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline-event" ] }, "put" : { @@ -13569,6 +22023,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13624,6 +22089,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline-event" ] } }, @@ -13632,6 +22108,24 @@ "summary" : "POST /api/timeline/", "description" : "Create a new [[Timeline]].", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:id -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.timeline.api.timeline.Timeline" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13687,6 +22181,27 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "sequence of map where {:id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.timeline.api.timeline.Timeline" + } + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] } }, @@ -13710,6 +22225,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] } }, @@ -13742,6 +22268,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] } }, @@ -13790,6 +22327,24 @@ }, "description" : "value must be a valid date string" } ], + "responses" : { + "2XX" : { + "description" : "map where {:id -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.timeline.api.timeline.Timeline" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] }, "put" : { @@ -13805,6 +22360,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13853,6 +22419,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] } }, @@ -13861,6 +22438,17 @@ "summary" : "POST /api/upload/csv", "description" : "Create a table and model populated with the values from the attached CSV. Returns the model ID if successful.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -13903,6 +22491,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user-key-value" ] } }, @@ -13927,6 +22526,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13964,12 +22574,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user-key-value" ] }, "delete" : { "summary" : "DELETE /api/user-key-value/namespace/{namespace}/key/{key}", "description" : "Deletes a KV-pair for the user", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user-key-value" ] } }, @@ -14009,12 +22641,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] }, "post" : { "summary" : "POST /api/user/", "description" : "Create a new `User`, return a 400 if the email address is already taken", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -14058,6 +22712,17 @@ "summary" : "GET /api/user/current", "description" : "Fetch the current `User`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14066,6 +22731,17 @@ "summary" : "GET /api/user/recipients", "description" : "Fetch a list of `Users`. Returns only active users. Meant for non-admins unlike GET /api/user.\n\n - If user-visibility is :all or the user is an admin, include all users.\n - If user-visibility is :group, include only users in the same group (excluding the all users group).\n - If user-visibility is :none or the user is sandboxed, include only themselves.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14083,6 +22759,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] }, "put" : { @@ -14098,6 +22785,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -14158,6 +22856,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14175,6 +22884,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14192,6 +22912,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -14225,6 +22956,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14233,6 +22975,17 @@ "summary" : "GET /api/util/random_token", "description" : "Return a cryptographically secure random 32-byte token, encoded as a hexadecimal string.\n Intended for use when creating a value for `embedding-secret-key`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/util" ] } } diff --git a/_docs/master/configuring-metabase/appearance.md b/_docs/master/configuring-metabase/appearance.md index 34c9694a40..2cf23de98e 100644 --- a/_docs/master/configuring-metabase/appearance.md +++ b/_docs/master/configuring-metabase/appearance.md @@ -176,4 +176,4 @@ Metabase will display this illustration when searches don't return any results. - [Customer-facing analytics](/learn/metabase-basics/embedding). - [Embedding introduction](../embedding/start). -- [Brand your Metabase](/learn/metabase-basics/embedding/brand). +- [Brand your Metabase](/docs/latest/configuring-metabase/appearance). diff --git a/_docs/master/configuring-metabase/setting-up-metabase.md b/_docs/master/configuring-metabase/setting-up-metabase.md index 3bb6c7a348..8eae745476 100644 --- a/_docs/master/configuring-metabase/setting-up-metabase.md +++ b/_docs/master/configuring-metabase/setting-up-metabase.md @@ -43,7 +43,7 @@ Don't worry about picking the wrong option. If you say you're interested in embe ## Gathering your database info -At this point you’ll need to gather some information about the database you want to use with Metabase. We won’t be able to connect to your database without it, but you’d like to deal with all of this later, that’s okay: just click **I’ll add my data later**. Metabase comes with a [Sample Database](/glossary/sample_database) that you can play around with to get a feel for how Metabase works. +At this point you’ll need to gather some information about the database you want to use with Metabase. We won’t be able to connect to your database without it, but you’d like to deal with all of this later, that’s okay: just click **I’ll add my data later**. Metabase comes with a [Sample Database](/glossary/sample-database) that you can play around with to get a feel for how Metabase works. If you’re ready to connect, here’s what you’ll need: diff --git a/_docs/master/databases/connecting.md b/_docs/master/databases/connecting.md index 27d2ea90e2..63f7f9f36d 100644 --- a/_docs/master/databases/connecting.md +++ b/_docs/master/databases/connecting.md @@ -76,7 +76,7 @@ Go to **Admin settings** > **Databases** > your database and click **Remove this ## Restoring the Sample Database -If you've deleted the Metabase [Sample Database](/glossary/sample_database), go to **Admin settings** > **Databases** and click **Bring the Sample Database back**. +If you've deleted the Metabase [Sample Database](/glossary/sample-database), go to **Admin settings** > **Databases** and click **Bring the Sample Database back**. ## Troubleshooting diff --git a/_docs/master/embedding/interactive-embedding.md b/_docs/master/embedding/interactive-embedding.md index e80ce4741e..c16dd02ef8 100644 --- a/_docs/master/embedding/interactive-embedding.md +++ b/_docs/master/embedding/interactive-embedding.md @@ -20,7 +20,7 @@ redirect_from: **Interactive embedding** is what you want if you want to offer [multi-tenant, self-service analytics](/learn/metabase-basics/embedding/multi-tenant-self-service-analytics). -Interactive embedding is the only type of embedding that integrates with your [permissions](../permissions/introduction) and [SSO](../people-and-groups/start#authentication) to give people the right level of access to [query](/glossary/query_builder) and [drill-down](/learn/metabase-basics/querying-and-dashboards/questions/drill-through) into your data. +Interactive embedding is the only type of embedding that integrates with your [permissions](../permissions/introduction) and [SSO](../people-and-groups/start#authentication) to give people the right level of access to [query](/glossary/query-builder) and [drill-down](/learn/metabase-basics/querying-and-dashboards/questions/drill-through) into your data. ## Interactive embedding demo diff --git a/_docs/master/embedding/introduction.md b/_docs/master/embedding/introduction.md index dbc020d74d..acd7fdd4f7 100644 --- a/_docs/master/embedding/introduction.md +++ b/_docs/master/embedding/introduction.md @@ -53,7 +53,7 @@ If you'd like to share your data with the good people of the internet, admins ca | Restrict data with [locked filters](./static-embedding-parameters#restricting-data-in-a-static-embed-with-locked-parameters) | ❌ | ❌ | ✅ | ❌ | | Restrict data with [sandboxes](../permissions/data-sandboxes) | ✅ | ✅ | ❌ | ❌ | | Use the [drill-through menu](/learn/metabase-basics/querying-and-dashboards/questions/drill-through) | ✅ | ✅ | ❌ | ❌ | -| Self-serve via [query builder](/glossary/query_builder) | ✅ | ✅ | ❌ | ❌ | +| Self-serve via [query builder](/glossary/query-builder) | ✅ | ✅ | ❌ | ❌ | | View usage of embeds with [usage analytics](../usage-and-performance-tools/usage-analytics) | ✅ | ✅ | ❌ | ❌ | | [Actions on dashboards](../dashboards/actions) | ✅ | ✅ | ❌ | ❌ | | Embed individual Metabase components | ✅ | ❌ | ❌ | ❌ | diff --git a/_docs/master/embedding/sdk/upgrade.md b/_docs/master/embedding/sdk/upgrade.md new file mode 100644 index 0000000000..d906724b61 --- /dev/null +++ b/_docs/master/embedding/sdk/upgrade.md @@ -0,0 +1,83 @@ +--- +version: master +has_magic_breadcrumbs: true +show_category_breadcrumb: true +show_title_breadcrumb: true +category: Embedding +title: 'Upgrading Metabase and the Embedded analytics SDK' +source_url: 'https://github.com/metabase/metabase/blob/master/docs/embedding/sdk/upgrade.md' +layout: new-docs +summary: 'How to upgrade your Metabase and Embedded analytics SDK versions, test the changes, and check for breaking changes that might affect your app.' +--- + +# Upgrading Metabase and the Embedded analytics SDK + +Here's a basic overview of the steps you'll want to take when upgrading your SDK. + +## 1. Read the release post and changelog for both Metabase and the Embedded analytics SDK + +- [Release posts](/releases) give a good overview of what's in each release, and call out breaking changes (which are rare). +- [Metabase changelogs](/changelog) list Metabase changes. +- [Embedded analytics SDK changelogs](/changelog/55) list changes specific to the SDK package. + +Check for any relevant changes, especially breaking changes that require you to update your application's code. If there are breaking changes, we'll have docs that'll walk you through what changes you'll need to make and why. + +## 2. Test the upgrade + +When upgrading to a new major version, you'll want to upgrade both Metabase and the SDK version in parallel, as having Metabase and the SDK major versions out of sync can cause errors. + +### Spin up the new version of Metabase for testing + +You can do this locally or in a dev instance. If your testing setup involves a lot of test user accounts, getting a [development instance](../../installation-and-operation/development-instance) could be more cost-effective. + +See [upgrading Metabase](../../installation-and-operation/upgrading-metabase). + +### Upgrade the SDK with npm or yarn + +You'll want to test the changes locally first, as there may be breaking changes that require you to upgrade your application code. + +Check out a new branch in your application and install the next stable version, either with npm or yarn: + +Via npm: + +```bash +npm install @metabase/embedding-sdk-react@{next-major-version-number}-stable +``` + +For example, if you were upgrading to version 55 of the SDK: + +```bash +npm install @metabase/embedding-sdk-react@55-stable +``` + +If you're using yarn: + +```bash +yarn add @metabase/embedding-sdk-react@{next-major-version-number}-stable +``` + +See more on [SDK versions](./version). + +### If there are breaking changes, make the necessary changes to your application code + +Breaking changes are rare, but if you do need to make changes, we'll mention it in the release notes for the new major version and have docs that walk you through the changes. + +Update or add tests for any application code changes that you make. + +### Deploy to your staging environment + +Before deploying your app to your staging environment, make sure you've tested your app locally (manually, as well as running any automated tests). + +If all goes well with your local tests, deploy to your staging environment. Check that the Metabase embeds in your staging app are still working as expected, and perform any other testing you normally do with your application with respect to your embedded analytics. + +## 3. Deploy to production + +If everything is working in staging, you're ready to deploy to production. + +Be sure to deploy your application changes and upgrade your Metabase in parallel so that the SDK version and the Metabase version stay in sync. + +### If your instance is on Metabase Cloud, you'll need to request an upgrade + +If you're on Metabase Cloud, your instance version is pinned, so you'll need to request an upgrade by [contacting support](/help-premium). + +We'll coordinate with you so that your instance is upgraded when you deploy the changes to your application. diff --git a/_docs/master/embedding/sdk/version.md b/_docs/master/embedding/sdk/version.md index 9ab574b799..86f9533b65 100644 --- a/_docs/master/embedding/sdk/version.md +++ b/_docs/master/embedding/sdk/version.md @@ -15,35 +15,32 @@ layout: new-docs The SDK stable version tracks with the Metabase version. -So, for example, if you're on Metabase 53 (`0.53.x`, `1.53.x`), _any_ version 0.53.x of the @metabase/embedding-sdk-react npm package will be compatible. +So, for example, if you're on Metabase 55 (`0.55.x`, `1.55.x`), _any_ version 0.55.x of the @metabase/embedding-sdk-react npm package will be compatible. -To simplify things, we publish dist-tags for each stable Metabase version. For example, to install the latest version of the SDK compatible with Metabase 53, run: +To simplify things, we publish dist-tags for each stable Metabase version. For example, to install the latest version of the SDK compatible with Metabase 55, run: ```sh -npm install @metabase/embedding-sdk-react@53-stable +npm install @metabase/embedding-sdk-react@55-stable ``` To grab the latest version of the SDK that works with Metabase nightly builds, use the `canary` dist-tag. ## Minimum SDK version -52 is the minimum version supported for the Embedded analytics SDK. +Version 52 is the minimum version supported for the Embedded analytics SDK. -## Version pinning when using the SDK with Metabase Cloud +## Instances on Metabase Cloud will be pinned to a specific version -To pin your version of Metabase, go to **Admin settings > Settings > Embedding**. Go to the Embedded analytics SDK card and scroll to **Version pinning** and click **Request version pinning**. +By default, if you're running on Metabase Cloud and using the Embedded analytics SDK, we'll pin your version to avoid breaking changes. -## Version pinning requirements +Normally, Metabase Cloud upgrades your Metabase as new versions roll out so you don't have to deal with upgrades. But if you're using the SDK with Metabase Cloud, you'll want to upgrade manually to make sure your embeds don't break when you upgrade both your Metabase and your SDK version. -To pin a version of Metabase, you must: +### Manually pinning your instance version on Metabase Cloud -- Be on Metabase Cloud (obviously) -- Be on the Pro or Enterprise plans +To manually pin your version of Metabase: -## Why you'd want to pin your Metabase Cloud version +1. Go to **Admin settings > Settings > Embedding**. +2. Go to the Embedded analytics SDK card. +3. Scroll to **Version pinning** and click **Request version pinning**. -Normally, Metabase Cloud upgrades your Metabase as new versions roll out so that you don't have to deal with upgrades. - -But if you're using the SDK with Metabase Cloud, you'll want to upgrade manually to make sure your embeds don't break when you upgrade both your Metabase and your SDK version. - -To upgrade manually, you can pin your Metabase version so that it stays in sync with the SDK version you're using. That way you can choose when to upgrade your Metabase. +This will open a mailto link to our support team. diff --git a/_docs/master/installation-and-operation/upgrading-metabase.md b/_docs/master/installation-and-operation/upgrading-metabase.md index cdfe3f1e6a..805935487d 100644 --- a/_docs/master/installation-and-operation/upgrading-metabase.md +++ b/_docs/master/installation-and-operation/upgrading-metabase.md @@ -13,11 +13,15 @@ redirect_from: # Upgrading Metabase -This page covers how to upgrade to a new [Metabase release](https://github.com/metabase/metabase/releases). +This page covers how to upgrade to a new Metabase release. + +- [Announcement posts for major releases](https://www.) +- [Changelogs](/changelog). +- [Release notes on GitHub](https://github.com/metabase/metabase/releases). ## Upgrading Metabase Cloud -If you're on a [Metabase Cloud](/pricing/) plan, we'll upgrade your Metabase automatically with each new release; no action needed on your end. +If you're on a [Metabase Cloud](/pricing/) plan, we'll upgrade your Metabase automatically with each new release; no action needed on your end ([unless you're using the Embedded analytics SDK](#instances-using-the-embedded-analtyics-sdk-on-metabase-cloud-must-request-an-upgrade)). How soon we upgrade you depends on the type of release: @@ -26,6 +30,14 @@ How soon we upgrade you depends on the type of release: Cloud customers can request an early upgrade by emailing support at help@metabase.com. Include the URL of the Metabase you want us to upgrade. +### Instances using the Embedded analtyics SDK on Metabase Cloud must request an upgrade + +If you're using the [Embedded analytics SDK](../embedding/sdk/introduction) on Metabase Cloud, we pin your version so that it doesn't upgrade automatically, as you should test the changes before upgrading. + +To upgrade your Metabase, you'll need to request an upgrade by [contacting support](/help-premium). + +See our [upgrade guide for the Embedded analytics SDK](../embedding/sdk/upgrade). + ## Upgrading a self-hosted Metabase Here are the steps for upgrading to a new Metabase version (major or minor): diff --git a/_docs/master/permissions/impersonation.md b/_docs/master/permissions/impersonation.md index 034aef9963..0303d10667 100644 --- a/_docs/master/permissions/impersonation.md +++ b/_docs/master/permissions/impersonation.md @@ -13,7 +13,7 @@ layout: new-docs {% include plans-blockquote.html feature="Impersonation access" %} -> For now, impersonation access is only available for MySQL, PostgreSQL, Redshift, Snowflake, and SQL Server. If you want to switch database _connections_ based on who is logged in, check out [Database routing](./database-routing). +> For now, impersonation access is only available for ClickHouse, MySQL, PostgreSQL, Redshift, Snowflake, and SQL Server. If you want to switch database _connections_ based on who is logged in, check out [Database routing](./database-routing). > If you're using views in PostgresSQL, the row-level security policies on views will only work on Postgres versions 15 and higher. diff --git a/_docs/master/questions/native-editor/writing-sql.md b/_docs/master/questions/native-editor/writing-sql.md index fa19e2a2da..e1730755b2 100644 --- a/_docs/master/questions/native-editor/writing-sql.md +++ b/_docs/master/questions/native-editor/writing-sql.md @@ -129,7 +129,7 @@ See [Caching question policies](../../configuring-metabase/caching#question-cach [learn-sql]: /learn/sql/working-with-sql [ref-models]: ./referencing-saved-questions-in-queries -[sample-database-gloss]: /glossary/sample_database +[sample-database-gloss]: /glossary/sample-database [sql-gloss]: /glossary/sql [troubleshooting-sql]: ../../troubleshooting-guide/sql [variable-gloss]: /glossary/variable diff --git a/_docs/master/questions/query-builder/expressions/converttimezone.md b/_docs/master/questions/query-builder/expressions/converttimezone.md index 22a7f39ba1..e2b78bc001 100644 --- a/_docs/master/questions/query-builder/expressions/converttimezone.md +++ b/_docs/master/questions/query-builder/expressions/converttimezone.md @@ -194,7 +194,7 @@ This section covers functions and formulas that work the same way as the Metabas ### SQL -When you run a question using the [query builder](/glossary/query_builder), Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results. +When you run a question using the [query builder](/glossary/query-builder), Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results. If our [timestamp sample data](#creating-custom-report-dates) is a `timestamp without time zone` stored in a PostgreSQL database: diff --git a/_docs/master/questions/query-builder/expressions/countif.md b/_docs/master/questions/query-builder/expressions/countif.md index f6ed404aa1..34e0d49b2f 100644 --- a/_docs/master/questions/query-builder/expressions/countif.md +++ b/_docs/master/questions/query-builder/expressions/countif.md @@ -172,7 +172,7 @@ You'll also need to set the **Group by** column to "Created Date: Month". ### SQL -When you run a question using the [query builder](/glossary/query_builder), Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results. +When you run a question using the [query builder](/glossary/query-builder), Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results. If our [sample data](#multiple-conditions) is stored in a PostgreSQL database, the SQL query: diff --git a/_docs/master/questions/query-builder/expressions/datetimeadd.md b/_docs/master/questions/query-builder/expressions/datetimeadd.md index 1decb26d4e..a4ae78d148 100644 --- a/_docs/master/questions/query-builder/expressions/datetimeadd.md +++ b/_docs/master/questions/query-builder/expressions/datetimeadd.md @@ -128,7 +128,7 @@ datetimeAdd([Opened On], 14, "day") ### SQL -When you run a question using the [query builder](/glossary/query_builder), Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results. +When you run a question using the [query builder](/glossary/query-builder), Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results. If our [coffee sample data](#calculating-an-end-date) is stored in a PostgreSQL database: diff --git a/_docs/master/questions/query-builder/expressions/datetimediff.md b/_docs/master/questions/query-builder/expressions/datetimediff.md index 9afc331872..6b5a628e0f 100644 --- a/_docs/master/questions/query-builder/expressions/datetimediff.md +++ b/_docs/master/questions/query-builder/expressions/datetimediff.md @@ -95,7 +95,7 @@ This section covers functions and formulas that work the same way as the Metabas ### SQL -When you run a question using the [query builder](/glossary/query_builder), Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results. +When you run a question using the [query builder](/glossary/query-builder), Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results. If our [cheese sample data](#calculating-age) is stored in a PostgreSQL database: diff --git a/_docs/master/questions/query-builder/expressions/datetimesubtract.md b/_docs/master/questions/query-builder/expressions/datetimesubtract.md index 193fa561c9..dae7f129e5 100644 --- a/_docs/master/questions/query-builder/expressions/datetimesubtract.md +++ b/_docs/master/questions/query-builder/expressions/datetimesubtract.md @@ -128,7 +128,7 @@ datetimeSubtract([Arrive By], 30, "minute") ### SQL -When you run a question using the [query builder](/glossary/query_builder), Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results. +When you run a question using the [query builder](/glossary/query-builder), Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results. If our [events sample data](#calculating-a-start-date) is stored in a PostgreSQL database: diff --git a/_docs/master/questions/query-builder/expressions/isempty.md b/_docs/master/questions/query-builder/expressions/isempty.md index 441bb9e8a9..6ef177a4d8 100644 --- a/_docs/master/questions/query-builder/expressions/isempty.md +++ b/_docs/master/questions/query-builder/expressions/isempty.md @@ -140,6 +140,6 @@ case(isEmpty([Feedback]), "No feedback.", [Feedback]) [custom-expressions-doc]: ../expressions [custom-expressions-learn]: /learn/metabase-basics/querying-and-dashboards/questions/custom-expressions [data-types]: /learn/grow-your-data-skills/data-fundamentals/data-types-overview#examples-of-data-types -[notebook-editor-def]: /glossary/query_builder +[notebook-editor-def]: /glossary/query-builder [numpy]: https://numpy.org/doc/ [pandas]: https://pandas.pydata.org/pandas-docs/stable/ diff --git a/_docs/master/questions/query-builder/expressions/isnull.md b/_docs/master/questions/query-builder/expressions/isnull.md index b8702b3c24..2fc4c27cd9 100644 --- a/_docs/master/questions/query-builder/expressions/isnull.md +++ b/_docs/master/questions/query-builder/expressions/isnull.md @@ -148,6 +148,6 @@ case(isNull([Feedback]), "Unknown feedback.", [Feedback]) [custom-expressions-doc]: ../expressions [custom-expressions-learn]: /learn/metabase-basics/querying-and-dashboards/questions/custom-expressions [data-types]: /learn/grow-your-data-skills/data-fundamentals/data-types-overview#examples-of-data-types -[notebook-editor-def]: /glossary/query_builder +[notebook-editor-def]: /glossary/query-builder [numpy]: https://numpy.org/doc/ [pandas]: https://pandas.pydata.org/pandas-docs/stable/ diff --git a/_docs/master/questions/query-builder/expressions/now.md b/_docs/master/questions/query-builder/expressions/now.md index af25882257..dfabb5647c 100644 --- a/_docs/master/questions/query-builder/expressions/now.md +++ b/_docs/master/questions/query-builder/expressions/now.md @@ -83,7 +83,7 @@ Different ways to do the same thing, because while you'd love to use custom expr ### SQL -When you run a question using the [query builder](/glossary/query_builder), Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results. +When you run a question using the [query builder](/glossary/query-builder), Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results. By default, `now` uses your Metabase's [report time zone](../../../configuring-metabase/localization#report-timezone). If your admin hasn't set a report time zone, `now` will use your database's time zone. diff --git a/_docs/master/questions/query-builder/expressions/sumif.md b/_docs/master/questions/query-builder/expressions/sumif.md index 51c3cd5d74..08a98f0056 100644 --- a/_docs/master/questions/query-builder/expressions/sumif.md +++ b/_docs/master/questions/query-builder/expressions/sumif.md @@ -185,7 +185,7 @@ Don't forget to set the **Group by** column to "Date Received: Month". ### SQL -When you run a question using the [query builder](/glossary/query_builder), Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results. +When you run a question using the [query builder](/glossary/query-builder), Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results. If our [payment sample data](#sumif) is stored in a PostgreSQL database, the SQL query: diff --git a/_docs/master/questions/query-builder/join.md b/_docs/master/questions/query-builder/join.md index 219815e1da..9ea8487df5 100644 --- a/_docs/master/questions/query-builder/join.md +++ b/_docs/master/questions/query-builder/join.md @@ -18,26 +18,26 @@ redirect_from: You can [join data][join] to combine your current data with another table, or even with a saved question. -After you click on the Join Data button to add a join step, you'll need to pick the data (from the same database) that you want to join. You can only pick tables and saved questions that are from the same database as your starting data. +After you click the "Join Data" button to add a join step, you'll need to pick the data (from the same database) that you want to join. You can only pick tables and saved questions that are from the same database as your starting data. ![Picking the data to join](../images/join-pick-data.png) -Next, you'll need to pick the columns you want to join on. This means you pick a column from the first table, and a column from the second table, and the join will stitch rows together where the value from the first column is equal to the value in the second column. A very common example is to join on an ID column in each table, so if you happened to pick a table to join on where there is a foreign key relationship between the tables, Metabase will automatically pick those corresponding ID columns for you. At the end of your join step, there's a `Columns` button you can click to choose which columns you want to include from the joined data. +Next, you'll need to pick the columns you want to join on. This means you pick a column from the first table and a column from the second table, and the join will stitch rows together where the value from the first column equals the value in the second column. A very common example is joining on an ID column in each table. If you pick a table to join where there's a foreign key relationship between the tables, Metabase will automatically pick those corresponding ID columns for you. At the end of your join step, there's a "Columns" button you can click to choose which columns you want to include from the joined data. -By default, Metabase will do a left outer join, but you can click on the Venn diagram icon to select a different type of join. Not all databases support all types of joins, so Metabase will only display the options supported by the database you're using. +By default, Metabase will do a left outer join, but you can click the Venn diagram icon to select a different type of join. Not all databases support all types of joins, so Metabase will only display the options supported by the database you're using. Here are the basic types of joins: -- **Left outer join:** select all records from Table A, along with records from Table B that meet the join condition, if any. -- **Right outer join:** select all records from Table B, along with records from Table A that meet the join condition, if any. -- **Inner join:** only select the records from Table A and B where the join condition is met. -- **Full outer join:** select all records from both tables, whether or not the join condition is met. +- **Left outer join:** Select all records from Table A, along with records from Table B that meet the join condition, if any. +- **Right outer join:** Select all records from Table B, along with records from Table A that meet the join condition, if any. +- **Inner join:** Only select the records from Table A and B where the join condition is met. +- **Full outer join:** Select all records from both tables, whether or not the join condition is met. -**A left outer join example:** If Table A is Orders and Table B is Customers, and assuming you do a join where the `customer_id` column in Orders is equal to the `ID` column in Customers, when you do a left outer join your results will be a full list of all your orders, and each order row will also display the columns of the customer who placed that order. Since a single customer can place many orders, a given customer's information might be repeated many times for different order rows. If there isn't a corresponding customer for a given order, the order's information will be shown, but the customer columns will just be blank for that row. +**A left outer join example:** If Table A is Orders and Table B is Customers, and you do a join where the `customer_id` column in Orders equals the `ID` column in Customers, when you do a left outer join your results will be a full list of all your orders, and each order row will also display the columns of the customer who placed that order. Since a single customer can place many orders, a given customer's information might be repeated many times for different order rows. If there isn't a corresponding customer for a given order, the order's information will be shown, but the customer columns will just be blank for that row. ## Multiple stages of joins -In many cases you might have tables A, B, and C, where A and B have a connection, and B and C have a connection, but A and C don't. If you want to join A to B to C, all you have to do is add multiple join steps. Click on Join Data, join table A to table B, then click the Join Data step below that completed join block to add a second join step, and join the results of your last join to table C. +In many cases you might have tables A, B, and C, where A and B have a connection, and B and C have a connection, but A and C don't. If you want to join A to B to C, all you have to do is add multiple join steps. Click "Join Data," join table A to table B, then click the "Join Data" step below that completed join block to add a second join step, and join the results of your last join to table C. ![An A to B to C join](../images/join-a-b-c.png) @@ -62,9 +62,9 @@ You can join tables on comparison conditions like: ## Joins with custom expressions -Sometimes people want to join data using constant values or relative dates or some other custom conditions. +Sometimes you want to join data using constant values, relative dates, or some other custom conditions. -For example, let's say you have a table of reviews, and want to add a column that includes the average rating for all products. +For example, let's say you have a table of reviews and want to add a column that includes the average rating for all products. You could first calculate the average rating, then join the result to the reviews table on `1=1`. @@ -77,12 +77,25 @@ To use a custom expression to define a join key: 3. Enter your expression (including a constant like `1`). 4. Click **Done**. -See a [list of expressions](./expressions-list). +Another example: Let's say you have: + + - A `customers` table that stores names under `first_name` and `last_name` + - An `accounts` table that stores first and last names in a single column, `full_name` + +You could join those tables using a custom expression. The join key for the `customers` table would look something like: + +``` +concat([first_name], " ", [last_name]) +``` + +And the join key for the `accounts` table would simply be the `full_name` column. + +Take a look at our [list of expressions](./expressions-list). ## Further reading - [Joins in Metabase][join] -- [Type of joins][join-types] +- [Types of joins][join-types] [join]: /learn/metabase-basics/querying-and-dashboards/questions/joins-in-metabase [join-types]: /learn/sql/working-with-sql/sql-join-types diff --git a/_site/docs/master/api.html b/_site/docs/master/api.html index 090c90c3e4..1cdcfe3110 100644 --- a/_site/docs/master/api.html +++ b/_site/docs/master/api.html @@ -190,6 +190,105 @@ }, "required" : [ "zoom", "x", "y", "lat-field", "lon-field" ] }, + "gsheets.response" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "error" : { + "type" : "boolean" + }, + "message" : { + "type" : "string", + "minLength" : 1 + } + }, + "required" : [ "error", "message" ] + }, { + "oneOf" : [ { + "type" : "object", + "properties" : { } + }, { + "type" : "object", + "properties" : { + "created_at" : { + "type" : "integer", + "minimum" : 1 + }, + "created_by_id" : { + "type" : "integer", + "minimum" : 1 + }, + "db_id" : { + "type" : "integer", + "minimum" : 1 + }, + "sync_started_at" : { + "type" : "integer", + "minimum" : 1 + }, + "url" : { + "type" : "string", + "minLength" : 1 + } + }, + "required" : [ "url", "created_at", "sync_started_at", "created_by_id", "db_id" ] + }, { + "type" : "object", + "properties" : { + "created_at" : { + "type" : "integer", + "minimum" : 1 + }, + "created_by_id" : { + "type" : "integer", + "minimum" : 1 + }, + "db_id" : { + "type" : "integer", + "minimum" : 1 + }, + "last_sync_at" : { + "type" : "integer", + "minimum" : 1 + }, + "next_sync_at" : { + "type" : "integer", + "minimum" : 1 + }, + "url" : { + "type" : "string", + "minLength" : 1 + } + }, + "required" : [ "url", "created_at", "last_sync_at", "next_sync_at", "created_by_id", "db_id" ] + }, { + "type" : "object", + "properties" : { + "created_at" : { + "type" : "integer", + "minimum" : 1 + }, + "created_by_id" : { + "type" : "integer", + "minimum" : 1 + }, + "db_id" : { + "type" : "integer", + "minimum" : 1 + }, + "error_message" : { + "type" : "string", + "minLength" : 1 + }, + "url" : { + "type" : "string", + "minLength" : 1 + } + }, + "required" : [ "url", "created_at", "error_message", "created_by_id", "db_id" ] + } ] + } ] + }, "metabase-enterprise.metabot-v3.client.schema.message" : { "allOf" : [ { "type" : "object", @@ -275,10 +374,126 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.answer-sources-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "metrics" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.full-metric" + } + }, + "models" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.full-table" + } + } + }, + "required" : [ "metrics", "models" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.basic-metric" : { + "type" : "object", + "properties" : { + "default_time_dimension_field_id" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "type" : { + "const" : "metric" + } + }, + "required" : [ "id", "type", "name" ] + }, + "metabase-enterprise.metabot-v3.tools.api.basic-table" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "fields" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "id" : { + "type" : "integer" + }, + "metrics" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.basic-metric" + } + }, + "name" : { + "type" : "string" + }, + "type" : { + "type" : "string", + "enum" : [ "model", "table" ] + } + }, + "required" : [ "id", "type", "name", "fields" ] + }, "metabase-enterprise.metabot-v3.tools.api.bucket" : { "type" : "string", "enum" : [ "millisecond", "second", "minute", "hour", "day", "week", "month", "quarter", "year", "second-of-minute", "minute-of-hour", "hour-of-day", "day-of-week", "day-of-month", "day-of-year", "week-of-year", "month-of-year", "quarter-of-year", "year-of-era" ] }, + "metabase-enterprise.metabot-v3.tools.api.column" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "field_id" : { + "type" : "string" + }, + "field_values" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.field-values" + }, + "name" : { + "type" : "string" + }, + "semantic_type" : { + "type" : "string" + }, + "type" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.field-type" + } + }, + "required" : [ "field_id", "name" ] + }, + "metabase-enterprise.metabot-v3.tools.api.columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.column" + } + }, + "metabase-enterprise.metabot-v3.tools.api.count" : { + "type" : "integer" + }, "metabase-enterprise.metabot-v3.tools.api.create-dashboard-subscription-arguments" : { "allOf" : [ { "type" : "object", @@ -441,6 +656,28 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.field-type" : { + "type" : "string", + "enum" : [ "boolean", "date", "datetime", "time", "number", "string" ] + }, + "metabase-enterprise.metabot-v3.tools.api.field-values" : { + "anyOf" : [ { + "type" : "array", + "items" : { + "type" : "boolean" + } + }, { + "type" : "array", + "items" : { + "type" : "number" + } + }, { + "type" : "array", + "items" : { + "type" : "string" + } + } ] + }, "metabase-enterprise.metabot-v3.tools.api.field-values-arguments" : { "allOf" : [ { "type" : "object", @@ -465,6 +702,38 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.field-values-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "field_id" : { + "type" : "string" + }, + "statistics" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.statistics" + }, + "values" : { + "type" : "array", + "items" : { } + } + }, + "required" : [ "field_id" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.filter" : { "anyOf" : [ { "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.existence-filter" @@ -544,6 +813,86 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.filtering-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "query" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Query" + }, + "query_id" : { + "type" : "string" + }, + "result_columns" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.column" + } + }, + "type" : { + "const" : "query" + } + }, + "required" : [ "type", "query_id", "query", "result_columns" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.find-metric-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "default_time_dimension_field_id" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.column" + }, + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "queryable_dimensions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.column" + } + }, + "type" : { + "const" : "metric" + } + }, + "required" : [ "id", "type", "name", "queryable_dimensions" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.find-outliers-arguments" : { "allOf" : [ { "type" : "object", @@ -613,24 +962,115 @@ "properties" : { } } ] }, - "metabase-enterprise.metabot-v3.tools.api.generate-insights-arguments" : { - "type" : "object", - "properties" : { - "for" : { - "anyOf" : [ { - "type" : "object", - "properties" : { - "metric_id" : { - "type" : "integer" - } - }, - "required" : [ "metric_id" ] - }, { - "type" : "object", - "properties" : { - "table_id" : { - "type" : "string" - } + "metabase-enterprise.metabot-v3.tools.api.find-outliers-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "dimension" : { }, + "value" : { + "anyOf" : [ { + "type" : "integer" + }, { + "type" : "number" + } ] + } + }, + "required" : [ "dimension", "value" ] + } + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.full-metric" : { + "type" : "object", + "properties" : { + "default_time_dimension_field_id" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "queryable_dimensions" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "type" : { + "const" : "metric" + } + }, + "required" : [ "id", "type", "name" ] + }, + "metabase-enterprise.metabot-v3.tools.api.full-table" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "fields" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "id" : { + "type" : "integer" + }, + "metrics" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.basic-metric" + } + }, + "name" : { + "type" : "string" + }, + "queryable_foreign_key_tables" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.basic-table" + } + }, + "type" : { + "type" : "string", + "enum" : [ "model", "table" ] + } + }, + "required" : [ "id", "type", "name", "fields" ] + }, + "metabase-enterprise.metabot-v3.tools.api.generate-insights-arguments" : { + "type" : "object", + "properties" : { + "for" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "metric_id" : { + "type" : "integer" + } + }, + "required" : [ "metric_id" ] + }, { + "type" : "object", + "properties" : { + "table_id" : { + "type" : "string" + } }, "required" : [ "table_id" ] }, { @@ -655,6 +1095,74 @@ }, "required" : [ "for" ] }, + "metabase-enterprise.metabot-v3.tools.api.get-current-user-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "email_address" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "type" : { + "const" : "user" + } + }, + "required" : [ "id", "type", "name", "email_address" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.get-dashboard-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "type" : { + "const" : "dashboard" + } + }, + "required" : [ "id", "type", "name" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.get-metric-details-arguments" : { "allOf" : [ { "type" : "object", @@ -681,6 +1189,60 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.get-metric-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.full-metric" + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, + "metabase-enterprise.metabot-v3.tools.api.get-query-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "query" : { + "type" : "object", + "properties" : { } + }, + "query_id" : { + "type" : "string" + }, + "result_columns" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "type" : { + "const" : "query" + } + }, + "required" : [ "type", "query_id", "query", "result_columns" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.get-report-details-arguments" : { "allOf" : [ { "type" : "object", @@ -703,6 +1265,43 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.get-report-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer" + }, + "name" : { + "type" : "string" + }, + "result_columns" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.columns" + }, + "type" : { + "const" : "question" + } + }, + "required" : [ "id", "type", "name", "result_columns" ] + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.get-table-details-arguments" : { "allOf" : [ { "type" : "object", @@ -739,6 +1338,25 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.get-table-details-result" : { + "anyOf" : [ { + "type" : "object", + "properties" : { + "structured_output" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.full-table" + } + }, + "required" : [ "structured_output" ] + }, { + "type" : "object", + "properties" : { + "output" : { + "type" : "string" + } + }, + "required" : [ "output" ] + } ] + }, "metabase-enterprise.metabot-v3.tools.api.group-by" : { "allOf" : [ { "type" : "object", @@ -782,6 +1400,9 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.proportion" : { + "type" : "number" + }, "metabase-enterprise.metabot-v3.tools.api.query-metric-arguments" : { "allOf" : [ { "type" : "object", @@ -865,6 +1486,59 @@ "properties" : { } } ] }, + "metabase-enterprise.metabot-v3.tools.api.statistics" : { + "type" : "object", + "properties" : { + "values" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.field-values" + }, + "min" : { + "type" : "number" + }, + "percent_url" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + }, + "average_length" : { + "type" : "number" + }, + "earliest" : { + "type" : "string" + }, + "q1" : { + "type" : "number" + }, + "max" : { + "type" : "number" + }, + "distinct_count" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.count" + }, + "percent_state" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + }, + "percent_null" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + }, + "avg" : { + "type" : "number" + }, + "sd" : { + "type" : "number" + }, + "percent_email" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + }, + "latest" : { + "type" : "string" + }, + "q3" : { + "type" : "number" + }, + "percent_json" : { + "$ref" : "#/components/schemas/metabase-enterprise.metabot-v3.tools.api.proportion" + } + } + }, "metabase-enterprise.metabot-v3.tools.api.string-filter" : { "allOf" : [ { "type" : "object", @@ -1003,154 +1677,15 @@ }, "required" : [ "conversation_id" ] }, - "metabase.analyze.fingerprint.schema.Fingerprint" : { - "type" : "object", - "properties" : { - "experimental" : { - "type" : "object", - "properties" : { } - }, - "global" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.GlobalFingerprint" - }, - "type" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.TypeSpecificFingerprint" - } - } - }, - "metabase.analyze.fingerprint.schema.GlobalFingerprint" : { - "type" : "object", - "properties" : { - "distinct-count" : { - "type" : "integer" - }, - "nil%" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - } - } - }, - "metabase.analyze.fingerprint.schema.NumberFingerprint" : { - "type" : "object", - "properties" : { - "avg" : { - "type" : "number" - }, - "max" : { - "type" : "number" - }, - "min" : { - "type" : "number" - }, - "q1" : { - "type" : "number" - }, - "q3" : { - "type" : "number" - }, - "sd" : { - "type" : "number" - } - } - }, - "metabase.analyze.fingerprint.schema.Percent" : { - "type" : "number" - }, - "metabase.analyze.fingerprint.schema.TemporalFingerprint" : { - "type" : "object", - "properties" : { - "earliest" : { - "type" : "string" - }, - "latest" : { - "type" : "string" - } - } - }, - "metabase.analyze.fingerprint.schema.TextFingerprint" : { - "type" : "object", - "properties" : { - "average-length" : { - "type" : "number" - }, - "percent-email" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - }, - "percent-json" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - }, - "percent-state" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - }, - "percent-url" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Percent" - } - } - }, - "metabase.analyze.fingerprint.schema.TypeSpecificFingerprint" : { - "type" : "object", - "properties" : { - "type/DateTime" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.TemporalFingerprint" - }, - "type/Number" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.NumberFingerprint" - }, - "type/Text" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.TextFingerprint" - } - } - }, - "metabase.analyze.query-results.MaybeUnnormalizedReference" : { }, - "metabase.analyze.query-results.ResultColumnMetadata" : { - "type" : "object", - "properties" : { - "field_ref" : { - "$ref" : "#/components/schemas/metabase.analyze.query-results.MaybeUnnormalizedReference" - }, - "fingerprint" : { - "$ref" : "#/components/schemas/metabase.analyze.fingerprint.schema.Fingerprint" - }, - "base_type" : { - "description" : "value must be a valid field data type (keyword or string)." - }, - "id" : { - "$ref" : "#/components/schemas/metabase.lib.schema.id.field" - }, - "name" : { - "type" : "string" - }, - "semantic_type" : { - "description" : "value must be a valid field semantic or relation type (keyword or string)." - }, - "display_name" : { - "type" : "string" - }, - "converted_timezone" : { - "$ref" : "#/components/schemas/metabase.lib.schema.expression.temporal.timezone-id" - }, - "unit" : { - "description" : "value must be a keyword or string.", - "anyOf" : [ { - "type" : "string" - }, { - "type" : "string" - } ] - }, - "description" : { - "type" : "string" - } - }, - "required" : [ "name", "display_name", "base_type" ] - }, - "metabase.analyze.query-results.ResultsMetadata" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/metabase.analyze.query-results.ResultColumnMetadata" - }, - "description" : "value must be an array of valid results column metadata maps.", - "optional" : true - }, - "metabase.cache.api..cache-strategy.base" : { + "metabase.analyze.query-results.ResultsMetadata" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.legacy-column-metadata" + }, + "description" : "value must be an array of valid results column metadata maps.", + "optional" : true + }, + "metabase.cache.api..cache-strategy.base" : { "type" : "object", "properties" : { "type" : { @@ -1335,65 +1870,2653 @@ "required" : [ "type", "subject", "body" ] } ] }, - "metabase.lib.schema.common.non-blank-string" : { - "type" : "string", - "minLength" : 1 + "metabase.collections.api.DashboardQuestionCandidate" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer", + "minimum" : 1 + }, + "name" : { + "type" : "string" + }, + "sole_dashboard_info" : { + "type" : "object", + "properties" : { + "description" : { + "type" : "string" + }, + "id" : { + "type" : "integer", + "minimum" : 1 + }, + "name" : { + "type" : "string" + } + }, + "required" : [ "id", "name" ] + } + }, + "required" : [ "id", "name", "sole_dashboard_info" ] }, - "metabase.lib.schema.expression.temporal.timezone-id" : { - "allOf" : [ { - "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + "metabase.collections.api.DashboardQuestionCandidatesResponse" : { + "type" : "object", + "properties" : { + "data" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.collections.api.DashboardQuestionCandidate" + } + }, + "total" : { + "type" : "integer" + } + }, + "required" : [ "data", "total" ] + }, + "metabase.collections.api.MoveDashboardQuestionCandidatesResponse" : { + "type" : "object", + "properties" : { + "moved" : { + "type" : "array", + "items" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + } + } + }, + "required" : [ "moved" ] + }, + "metabase.legacy-mbql.schema.!=" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.*" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.+" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.-" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema./" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.<" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.<=" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.=" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.>" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.>=" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.Addable" : { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateTimeExpressionArg" }, { - "anyOf" : [ { - "type" : "string", - "enum" : [ "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Ciudad_Juarez", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Nelson", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CET", "CST6CDT", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EET", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Kyiv", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT0", "Greenwich", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NZ", "NZ-CHAT", "Navajo", "PRC", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kanton", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROK", "Singapore", "SystemV/AST4", "SystemV/AST4ADT", "SystemV/CST6", "SystemV/CST6CDT", "SystemV/EST5", "SystemV/EST5EDT", "SystemV/HST10", "SystemV/MST7", "SystemV/MST7MDT", "SystemV/PST8", "SystemV/PST8PDT", "SystemV/YST9", "SystemV/YST9YDT", "Turkey", "UCT", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC", "Universal", "W-SU", "WET", "Zulu" ] - }, { - "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.zone-offset" - } ] + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.interval" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpressionArg" } ] }, - "metabase.lib.schema.id.card" : { - "type" : "integer", - "minimum" : 1 + "metabase.legacy-mbql.schema.Aggregation" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.aggregation-options" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.UnnamedAggregation" + } ] }, - "metabase.lib.schema.id.field" : { - "type" : "integer", - "minimum" : 1 + "metabase.legacy-mbql.schema.BooleanExpression" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.and" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.or" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.not" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.=" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.!=" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.<" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.>" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.<=" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.>=" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.between" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.starts-with" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ends-with" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.contains" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.in" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.not-in" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.does-not-contain" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.inside" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.is-empty" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.not-empty" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.is-null" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.not-null" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.relative-time-interval" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.time-interval" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.during" + } ] }, - "metabase.lib.schema.literal..string.datetime" : { + "metabase.legacy-mbql.schema.Constraints" : { + "description" : "Additional constraints added to a query limiting the maximum number of rows that can be returned. Mostly useful\n because native queries don't support the MBQL `:limit` clause. For MBQL queries, if `:limit` is set, it will\n override these values.", + "type" : "object", + "properties" : { + "max-results" : { + "description" : "Maximum number of results to allow for a query with aggregations. If `max-results-bare-rows` is unset, this\n applies to all queries", + "$ref" : "#/components/schemas/metabase.lib.schema.common.int-greater-than-or-equal-to-zero" + }, + "max-results-bare-rows" : { + "description" : "Maximum number of results to allow for a query with no aggregations. If set, this should be LOWER than\n `:max-results`.", + "$ref" : "#/components/schemas/metabase.lib.schema.common.int-greater-than-or-equal-to-zero" + } + } + }, + "metabase.legacy-mbql.schema.DatabaseID" : { + "description" : "Schema for a valid `:database` ID, in the top-level 'outer' query. Either a positive integer (referring to an\n actual Database), or the saved questions virtual ID, which is a placeholder used for queries using the\n `:source-table \"card__id\"` shorthand for a source query resolved by middleware (since clients might not know the\n actual DB for that source query.)", "anyOf" : [ { - "type" : "string", - "pattern" : "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$" + "$ref" : "#/components/schemas/metabase.lib.schema.id.saved-questions-virtual-database" }, { - "type" : "string", - "pattern" : "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))$" + "$ref" : "#/components/schemas/metabase.lib.schema.id.database" } ] }, - "metabase.lib.schema.literal..string.zone-offset" : { - "type" : "string", - "pattern" : "(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))" + "metabase.legacy-mbql.schema.DateOrDatetimeLiteral" : { + "description" : "Schema for a valid date or datetime literal.", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.relative-datetime" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.absolute-datetime" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal.datetime" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal.date" + } ] }, - "metabase.lib.schema.metadata..column.has-field-values" : { + "metabase.legacy-mbql.schema.DateTimeExpressionArg" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Aggregation" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatetimeExpression" + }, { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateOrDatetimeLiteral" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + } ] + }, + "metabase.legacy-mbql.schema.DateTimeUnit" : { + "description" : "Valid unit for *datetime* bucketing.", "type" : "string", - "enum" : [ "auto-list", "list", "none", "search" ] + "enum" : [ "quarter", "day", "hour", "week", "second", "default", "day-of-week", "hour-of-day", "month", "month-of-year", "day-of-month", "year", "day-of-year", "millisecond", "year-of-era", "week-of-year", "quarter-of-year", "minute-of-hour", "minute" ] }, - "metabase.lib.schema.temporal-bucketing.unit" : { + "metabase.legacy-mbql.schema.DateUnit" : { + "description" : "Valid unit for date bucketing.", "type" : "string", - "enum" : [ "quarter", "day", "hour", "week", "second", "default", "day-of-week", "hour-of-day", "month", "month-of-year", "day-of-month", "year", "day-of-year", "millisecond", "year-of-era", "second-of-minute", "week-of-year", "quarter-of-year", "minute-of-hour", "minute" ] + "enum" : [ "quarter", "day", "week", "default", "day-of-week", "month", "month-of-year", "day-of-month", "year", "day-of-year", "year-of-era", "week-of-year", "quarter-of-year" ] }, - "metabase.logger.api.time-unit" : { + "metabase.legacy-mbql.schema.DatetimeDiffUnit" : { + "description" : "Valid units for a datetime-diff clause.", "type" : "string", - "enum" : [ "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds" ] + "enum" : [ "second", "minute", "hour", "day", "week", "month", "quarter", "year" ] }, - "metabase.notification.models.FullyHydratedNotification" : { - "description" : "Fully hydrated notification.", + "metabase.legacy-mbql.schema.DatetimeExpression" : { "oneOf" : [ { - "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.+" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.datetime-add" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.datetime-subtract" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.convert-timezone" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.now" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.date" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.datetime" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.today" + } ] + }, + "metabase.legacy-mbql.schema.EqualityComparable" : { + "anyOf" : [ { + "type" : "boolean" + }, { + "type" : "number" + }, { + "type" : "string" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemporalLiteral" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.relative-datetime" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ExpressionArg" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + } ], + "optional" : true + }, + "metabase.legacy-mbql.schema.ExpressionArg" : { + "oneOf" : [ { + "type" : "number" + }, { + "type" : "boolean" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.BooleanExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatetimeExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Aggregation" + }, { + "type" : "string" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.StringExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, + "metabase.legacy-mbql.schema.ExtractWeekMode" : { + "description" : "Valid modes to extract weeks.", + "type" : "string", + "enum" : [ "iso", "us", "instance" ] + }, + "metabase.legacy-mbql.schema.FieldOptions" : { + "allOf" : [ { + "type" : "object", + "properties" : { + "base-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning", + "description" : "Replaces `binning-strategy`.\n\n Using binning requires the driver to support the `:binning` feature." + }, + "inherited-temporal-unit" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateTimeUnit" + }, + "join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias", + "description" : "Replaces `joined-field`.\n\n `:join-alias` is used to refer to a FieldOrExpression from a different Table/nested query that you are EXPLICITLY\n JOINING against." + }, + "source-field" : { + "description" : "Replaces `fk->`.\n\n `:source-field` is used to refer to a FieldOrExpression from a different Table you would like IMPLICITLY JOINED to\n the source table.\n\n If both `:source-field` and `:join-alias` are supplied, `:join-alias` should be used to perform the join;\n `:source-field` should be for information purposes only.", + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "source-field-join-alias" : { + "description" : "The join alias of the source field used for an implicit join.", + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "source-field-name" : { + "description" : "The name or desired alias of the field used for an implicit join.", + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "temporal-unit" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateTimeUnit", + "description" : "`:temporal-unit` is used to specify DATE BUCKETING for a FieldOrExpression that represents a moment in time of\n some sort.\n\n There is no requirement that all `:type/Temporal` derived FieldOrExpressions specify a `:temporal-unit`, but for\n legacy reasons `:field` clauses that refer to `:type/DateTime` FieldOrExpressions will be automatically \"bucketed\"\n in the `:breakout` and `:filter` clauses, but nowhere else. Auto-bucketing only applies to `:filter` clauses when\n values for comparison are `yyyy-MM-dd` date strings. See the `auto-bucket-datetimes` middleware for more details.\n `:field` clauses elsewhere will not be automatically bucketed, so drivers still need to make sure they do any\n special datetime handling for plain `:field` clauses when their FieldOrExpression derives from `:type/DateTime`." + } + } + }, { + "description" : "If `:base-type` is specified, the `:temporal-unit` must make sense, e.g. no bucketing by `:year`for\n a `:type/Time` column.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.validate-temporal-unit" + }, { + "description" : "You cannot use `:binning` keys like `:strategy` in the top level.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.no-binning-options-at-top-level" + } ] + }, + "metabase.legacy-mbql.schema.FieldOrExpressionDef" : { + "description" : "Schema for anything that is accepted as a top-level expression definition, either an arithmetic expression such as a\n `:+` clause or a `:field` or `:value` clause.", + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.StringExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.BooleanExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatetimeExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case:if" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.offset" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, + "metabase.legacy-mbql.schema.Fields" : { + "allOf" : [ { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, + "minItems" : 1 + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.helpers.distinct" + } ] + }, + "metabase.legacy-mbql.schema.Filter" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatetimeExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.StringExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.BooleanExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.segment" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, + "metabase.legacy-mbql.schema.Ident" : { + "description" : "Unique identifier string for new `:column` refs. The new refs aren't used in legacy MBQL (currently) but the\n idents for column-introducing new clauses (joins, aggregations, breakouts, expressions) are randomly generated when\n the clauses are created, so the idents must be preserved in legacy MBQL.\n\n These are opaque strings under the initial design; I've made them a separate schema for documentation and\n future-proofing.", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, { + "type" : "string" + } ] + }, + "metabase.legacy-mbql.schema.IntGreaterThanZeroOrNumericExpression" : { + "oneOf" : [ { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + } ] + }, + "metabase.legacy-mbql.schema.Join" : { + "description" : "Perform the equivalent of a SQL `JOIN` with another Table or nested `:source-query`. JOINs are either explicitly\n specified in the incoming query, or implicitly generated when one uses a `:field` clause with `:source-field`.\n\n In the top-level query, you can reference Fields from the joined table or nested query by including `:source-field`\n in the `:field` options (known as implicit joins); for explicit joins, you *must* specify `:join-alias` yourself; in\n the `:field` options, e.g.\n\n ;; for joins against other Tables/MBQL source queries\n [:field 1 {:join-alias \"my_join_alias\"}]\n\n ;; for joins against native queries\n [:field \"my_field\" {:base-type :field/Integer, :join-alias \"my_join_alias\"}]", + "type" : "object", + "properties" : { + "ident" : { + "description" : "An opaque string used as a unique identifier for this join clause, even if it evolves. This string is randomly\n generated when a join clause is created, so it can never be confused with another join of the same table.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Ident" + }, + "strategy" : { + "description" : "Defaults to `:left-join`; used for all automatically-generated JOINs\n\n Driver implementations: this is guaranteed to be present after pre-processing.", + "type" : "string", + "enum" : [ "full-join", "right-join", "left-join", "inner-join" ] + }, + "source-metadata" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.legacy-column-metadata" + }, + "description" : "Metadata about the source query being used, if pulled in from a Card via the\n `:source-table \"card__id\"` syntax. added automatically by the `resolve-card-id-source-tables` middleware." + }, + "condition" : { + "description" : "The condition on which to JOIN. Can be anything that is a valid `:filter` clause. For automatically-generated\n JOINs this is usually something like\n\n [:= [:field {:join-alias }]]", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Filter" + }, + "source-query" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.SourceQuery" + }, + "fk-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field", + "description" : "Mostly used only internally. When a join is implicitly generated via a `:field` clause with\n `:source-field`, the ID of the foreign key field in the source Table will be recorded here. This information is used\n to add `fk_field_id` information to the `:cols` in the query results, and also for drill-thru. When generating\n explicit joins by hand you can usually omit this information, altho it doesn't hurt to include it if you know it.\n\n Don't set this information yourself. It will have no effect." + }, + "fields" : { + "description" : "The Fields from this join to include in parent-level results. This can be either `:none`, `:all`, or a sequence\n of `:field` clauses.\n\n * `:none`: no Fields from the joined table or nested query are included (unless indirectly included by breakouts or\n other clauses). This is the default, and what is used for automatically-generated joins.\n\n * `:all`: will include all of the Field from the joined table or query\n\n * a sequence of Field clauses: include only the Fields specified. Valid clauses are the same as the top-level\n `:fields` clause. This should be non-empty and all elements should be distinct. The normalizer will automatically\n remove duplicate fields for you, and replace empty clauses with `:none`.\n\n Driver implementations: you can ignore this clause. Relevant fields will be added to top-level `:fields` clause with\n appropriate aliases.", + "anyOf" : [ { + "type" : "string", + "enum" : [ "all", "none" ] + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Fields" + } ] + }, + "source-table" : { + "description" : "*What* to JOIN. Self-joins can be done by using the same `:source-table` as in the query where\n this is specified. YOU MUST SUPPLY EITHER `:source-table` OR `:source-query`, BUT NOT BOTH!", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.id.table" + }, { + "description" : "`card__` string Table ID", + "type" : "string", + "pattern" : "^card__[1-9]\\d*$" + } ] + }, + "alias" : { + "description" : "The name used to alias the joined table or query. This is usually generated automatically and generally looks\n like `table__via__field`. You can specify this yourself if you need to reference a joined field with a `:join-alias`\n in the options.\n\n Driver implementations: This is guaranteed to be present after pre-processing.", + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + } + }, + "required" : [ "condition" ] + }, + "metabase.legacy-mbql.schema.Joins" : { + "description" : "Schema for a valid sequence of `Join`s. Must be a non-empty sequence, and `:alias`, if specified, must be unique.", + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Join" + }, + "minItems" : 1 + }, + "metabase.legacy-mbql.schema.MBQLQuery" : { + "type" : "object", + "properties" : { + "breakout" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, + "minItems" : 1 + }, + "source-metadata" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.legacy-column-metadata" + }, + "description" : "Info about the columns of the source query. Added in automatically by middleware. This metadata is\n primarily used to let power things like binning when used with Field Literals instead of normal Fields." + }, + "source-query" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.SourceQuery" + }, + "limit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.int-greater-than-or-equal-to-zero" + }, + "filter" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Filter" + }, + "joins" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Joins" + }, + "aggregation" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Aggregation" + }, + "minItems" : 1 + }, + "fields" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Fields" + }, + "source-table" : { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.id.table" + }, { + "description" : "`card__` string Table ID", + "type" : "string", + "pattern" : "^card__[1-9]\\d*$" + } ] + }, + "order-by" : { + "allOf" : [ { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.OrderBy" + }, + "minItems" : 1 + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.helpers.distinct" + } ] + }, + "page" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Page" + }, + "expressions" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.FieldOrExpressionDef" + } + } + } + }, + "metabase.legacy-mbql.schema.MiddlewareOptions" : { + "description" : "Additional options that can be used to toggle middleware on or off.", + "type" : "object", + "properties" : { + "add-default-userland-constraints?" : { + "type" : "boolean", + "description" : "Whether to add some default `max-results` and `max-results-bare-rows` constraints. By default, none are added,\n although the functions that ultimately power most API endpoints tend to set this to `true`. See\n `add-constraints` middleware for more details." + }, + "disable-max-results?" : { + "description" : "Disable applying a default limit on the query results. Handled in the `add-default-limit` middleware. If true,\n this will override the `:max-results` and `:max-results-bare-rows` values in `Constraints`.", + "type" : "boolean" + }, + "disable-mbql->native?" : { + "description" : "Disable the MBQL->native middleware. If you do this, the query will not work at all, so there are no cases where\n you should set this yourself. This is only used by the `metabase.query-processor.preprocess/preprocess` function to\n get the fully pre-processed query without attempting to convert it to native.", + "type" : "boolean" + }, + "format-rows?" : { + "description" : "Should we skip converting datetime types to ISO-8601 strings with appropriate timezone when post-processing\n results? Used by `metabase.query-processor.middleware.format-rows`default `false`.", + "type" : "boolean" + }, + "process-viz-settings?" : { + "type" : "boolean", + "description" : "Whether to process a question's visualization settings and include them in the result metadata so that they can\n incorporated into an export. Used by `metabase.query-processor.middleware.visualization-settings`; default\n `false`." + }, + "skip-results-metadata?" : { + "description" : "Should we skip adding `results_metadata` to query results after running the query? Used by\n `metabase.query-processor.middleware.results-metadata`; default `false`. (Note: we may change the name of this\n column in the near future, to `result_metadata`, to fix inconsistencies in how we name things.)", + "type" : "boolean" + }, + "userland-query?" : { + "type" : "boolean", + "description" : "Userland queries are ones ran as a result of an API call, Pulse, or the like. Special handling is done in\n certain userland-only middleware for such queries -- results are returned in a slightly different format, and\n QueryExecution entries are normally saved, unless you pass `:no-save` as the option." + } + } + }, + "metabase.legacy-mbql.schema.NativeSourceQuery" : { + "type" : "object", + "properties" : { + "collection" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "native" : { }, + "template-tags" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTagMap" + } + }, + "required" : [ "native" ] + }, + "metabase.legacy-mbql.schema.NumericExpression" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.+" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.-" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.~1" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.*" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.coalesce" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.length" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.floor" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ceil" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.round" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.abs" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.power" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.sqrt" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.exp" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.log" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case:if" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.datetime-diff" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.integer" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.float" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.temporal-extract" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-year" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-quarter" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-month" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-week" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-day" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-day-of-week" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-hour" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-minute" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.get-second" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.aggregation" + } ] + }, + "metabase.legacy-mbql.schema.NumericExpressionArg" : { + "oneOf" : [ { + "type" : "number" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Aggregation" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Reference" + } ] + }, + "metabase.legacy-mbql.schema.OrderBy" : { + "description" : "Schema for an `order-by` clause subclause.", + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.asc" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.desc" + } ] + }, + "metabase.legacy-mbql.schema.OrderComparable" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "anyOf" : [ { + "type" : "number" + }, { + "type" : "string" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemporalLiteral" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ExpressionArg" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.relative-datetime" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + } ] + } ] + }, + "metabase.legacy-mbql.schema.Page" : { + "description" : "`page` = page num, starting with 1. `items` = number of items per page.\n e.g.\n\n {:page 1, :items 10} = items 1-10\n {:page 2, :items 10} = items 11-20", + "type" : "object", + "properties" : { + "items" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, + "page" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "page", "items" ] + }, + "metabase.legacy-mbql.schema.Parameter" : { + "description" : "Schema for the *value* of a parameter (e.g. a Dashboard parameter or a native query template tag) as passed in as\n part of the `:parameters` list in a query.", + "type" : "object", + "properties" : { + "default" : { }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { }, + "slug" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "target" : { + "oneOf" : [ { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.dimension" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.variable" + } ] + } ] + }, { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.dimension" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.variable" + } ] + } ] + }, { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.dimension" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.variable" + } ] + } ] + } ] + }, + "type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.type" + }, + "value" : { } + }, + "required" : [ "type" ] + }, + "metabase.legacy-mbql.schema.ParameterList" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Parameter" + }, + "optional" : true + }, + "metabase.legacy-mbql.schema.Query" : { + "allOf" : [ { + "type" : "object", + "properties" : { + "update-row" : { + "$ref" : "#/components/schemas/metabase.lib.schema.actions.row" + }, + "settings" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Settings" + }, + "constraints" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Constraints" + }, + "query" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.MBQLQuery" + }, + "native" : { + "type" : "object", + "properties" : { + "collection" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "query" : { }, + "template-tags" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTagMap" + } + }, + "required" : [ "query" ] + }, + "info" : { + "$ref" : "#/components/schemas/metabase.lib.schema.info.info", + "description" : "Used when recording info about this run in the QueryExecution log; things like context query was\n ran in and User who ran it." + }, + "middleware" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.MiddlewareOptions" + }, + "database" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DatabaseID" + }, + "type" : { + "description" : "Type of query. `:query` = MBQL; `:native` = native.", + "type" : "string", + "enum" : [ "query", "native" ] + }, + "parameters" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ParameterList" + }, + "create-row" : { + "$ref" : "#/components/schemas/metabase.lib.schema.actions.row" + } + }, + "required" : [ "type" ] + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.check-keys-for-query-type" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.check-query-does-not-have-source-metadata" + } ] + }, + "metabase.legacy-mbql.schema.Reference" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.aggregation" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.expression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + } ] + }, + "metabase.legacy-mbql.schema.RelativeDatetimeUnit" : { + "type" : "string", + "enum" : [ "default", "minute", "hour", "day", "week", "month", "quarter", "year" ] + }, + "metabase.legacy-mbql.schema.Settings" : { + "description" : "Options that tweak the behavior of the query processor.", + "type" : "object", + "properties" : { + "report-timezone" : { + "description" : "The timezone the query should be ran in, overriding the default report timezone for the instance.", + "$ref" : "#/components/schemas/metabase.lib.schema.expression.temporal.timezone-id" + } + } + }, + "metabase.legacy-mbql.schema.SourceQuery" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NativeSourceQuery" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.MBQLQuery" + } ] + }, + "metabase.legacy-mbql.schema.StringExpression" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.substring" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.trim" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ltrim" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.rtrim" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.replace" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.lower" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.upper" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.concat" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.regex-match-first" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.coalesce" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case:if" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.host" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.domain" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.subdomain" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.path" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.month-name" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.quarter-name" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.day-name" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.text" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.split-part" + } ] + }, + "metabase.legacy-mbql.schema.StringExpressionArg" : { + "oneOf" : [ { + "type" : "string" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.StringExpression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.value" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field-or-expression-ref" + } ] + }, + "metabase.legacy-mbql.schema.TemplateTag" : { + "description" : "Schema for a template tag as specified in a native query. There are four types of template tags, differentiated by\n `:type`.\n\n Template tags are used to specify in native queries that are replaced with some sort of value when\n the query itself runs. There are four basic types of template tag for native queries:\n\n 1. Field filters, which are used like\n\n SELECT * FROM table WHERE \n\n These reference specific Fields and are replaced with entire conditions, e.g. `some_field > 1000`\n\n 2. Raw values, which are used like\n\n SELECT * FROM table WHERE my_field = \n\n These are replaced with raw values.\n\n 3. Native query snippets, which might be used like\n\n SELECT * FROM () source\n\n These are replaced with `NativeQuerySnippet`s from the application database.\n\n 4. Source query Card IDs, which are used like\n\n SELECT * FROM () source\n\n These are replaced with the query from the Card with that ID.\n\n Field filters and raw values usually have their value specified by `:parameters`.", + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:FieldFilter" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:Snippet" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:SourceQuery" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:TemporalUnit" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag:RawValue" + } ] + }, + "metabase.legacy-mbql.schema.TemplateTag:FieldFilter" : { + "description" : "Schema for a field filter template tag.", + "type" : "object", + "properties" : { + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { + "type" : "boolean" + }, + "type" : { + "const" : "dimension" + }, + "alias" : { + "type" : "string" + }, + "options" : { + "type" : "object", + "additionalProperties" : { }, + "description" : "optional map to be appended to filter clause" + }, + "dimension" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + }, + "default" : { }, + "widget-type" : { + "description" : "which type of widget the frontend should show for this Field Filter; this also affects which parameter types\n are allowed to be specified for it.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.WidgetType" + } + }, + "required" : [ "type", "name", "display-name", "dimension", "widget-type" ] + }, + "metabase.legacy-mbql.schema.TemplateTag:RawValue" : { + "description" : "Schema for a raw value template tag.", + "type" : "object", + "properties" : { + "default" : { }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { + "type" : "boolean" + }, + "type" : { + "type" : "string", + "enum" : [ "date", "number", "boolean", "text" ] + } + }, + "required" : [ "type", "name", "display-name" ] + }, + "metabase.legacy-mbql.schema.TemplateTag:Snippet" : { + "description" : "Schema for a native query snippet template tag.", + "type" : "object", + "properties" : { + "database" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "snippet-id" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, + "snippet-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "type" : { + "const" : "snippet" + } + }, + "required" : [ "type", "name", "display-name", "snippet-name", "snippet-id" ] + }, + "metabase.legacy-mbql.schema.TemplateTag:SourceQuery" : { + "description" : "Schema for a source query template tag.", + "type" : "object", + "properties" : { + "card-id" : { + "description" : "Must be a positive integer.", + "type" : "integer", + "minimum" : 1 + }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "type" : { + "const" : "card" + } + }, + "required" : [ "type", "name", "display-name", "card-id" ] + }, + "metabase.legacy-mbql.schema.TemplateTag:TemporalUnit" : { + "description" : "Schema for a temporal unit template tag.", + "type" : "object", + "properties" : { + "alias" : { + "type" : "string" + }, + "default" : { }, + "dimension" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { + "type" : "boolean" + }, + "type" : { + "const" : "temporal-unit" + } + }, + "required" : [ "type", "name", "display-name", "dimension" ] + }, + "metabase.legacy-mbql.schema.TemplateTagMap" : { + "description" : "Schema for the `:template-tags` map passed in as part of a native query.\n\n Map of template tag name -> template tag definition", + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TemplateTag" + } + }, + "metabase.legacy-mbql.schema.TemporalExtractUnit" : { + "description" : "Valid units to extract from a temporal.", + "type" : "string", + "enum" : [ "year-of-era", "quarter-of-year", "month-of-year", "week-of-year-iso", "week-of-year-us", "week-of-year-instance", "day-of-month", "day-of-week", "day-of-week-iso", "hour-of-day", "minute-of-hour", "second-of-minute" ] + }, + "metabase.legacy-mbql.schema.TemporalLiteral" : { + "description" : "Schema for valid temporal literals.", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateOrDatetimeLiteral" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.TimeLiteral" + } ] + }, + "metabase.legacy-mbql.schema.TimeLiteral" : { + "description" : "Schema for valid time literals.", + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.time" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal.time" + } ] + }, + "metabase.legacy-mbql.schema.TimeUnit" : { + "description" : "Valid unit for time bucketing.", + "type" : "string", + "enum" : [ "hour", "second", "default", "hour-of-day", "millisecond", "minute-of-hour", "minute" ] + }, + "metabase.legacy-mbql.schema.UnnamedAggregation" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.NumericExpression" + }, { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.aggregation" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.avg" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.cum-sum" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.distinct" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.distinct-where" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.stddev" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.sum" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.min" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.max" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.metric" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.share" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.count-where" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.sum-where" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.case:if" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.median" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.percentile" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.ag:var" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.cum-count" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.count" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.offset" + } ] + } ] + }, + "metabase.legacy-mbql.schema.ValueTypeInfo" : { + "description" : "Type info about a value in a `:value` clause. Added automatically by `wrap-value-literals` middleware to values in filter clauses based on the Field in the clause.", + "type" : "object", + "properties" : { + "base_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "database_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "semantic_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + }, + "unit" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.DateTimeUnit" + } + } + }, + "metabase.legacy-mbql.schema.WidgetType" : { + "description" : "Schema for valid values of `:widget-type` for a [[::TemplateTag:FieldFilter]].", + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.widget-type" + }, + "metabase.legacy-mbql.schema.abs" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.absolute-datetime" : { + "oneOf" : [ { }, { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.ag:var" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.aggregation" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.aggregation-options" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.and" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.asc" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.avg" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.between" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.case" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.case:if" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.ceil" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.check-keys-for-query-type" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.check-query-does-not-have-source-metadata" : { + "description" : "`:source-metadata` is added to queries when `card__id` source queries are resolved. It contains info about the\n columns in the source query.\n\n Where this is added was changed in Metabase 0.33.0 -- previously, when `card__id` source queries were resolved, the\n middleware would add `:source-metadata` to the top-level; to support joins against source queries, this has been\n changed so it is always added at the same level the resolved `:source-query` is added.\n\n This should automatically be fixed by `normalize`; if we encounter it, it means some middleware is not functioning\n properly." + }, + "metabase.legacy-mbql.schema.coalesce" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.concat" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.contains" : { + "anyOf" : [ { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.convert-timezone" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.count" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.count-where" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.cum-count" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.cum-sum" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.date" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.datetime" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.datetime-add" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.datetime-diff" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.datetime-subtract" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.day-name" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.desc" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.dimension" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.distinct" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.distinct-where" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.does-not-contain" : { + "anyOf" : [ { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.domain" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.during" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.ends-with" : { + "anyOf" : [ { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.exp" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.expression" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.field" : { + "allOf" : [ { + "allOf" : [ ] + }, { + "description" : "Fields using names rather than integer IDs are required to specify `:base-type`.", + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.require-base-type-for-field-name" + } ] + }, + "metabase.legacy-mbql.schema.field-or-expression-ref" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.expression" + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + } ] + }, + "metabase.legacy-mbql.schema.float" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.floor" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-day" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-day-of-week" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-hour" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-minute" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-month" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-quarter" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-second" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-week" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.get-year" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.helpers.distinct" : { + "description" : "values must be distinct" + }, + "metabase.legacy-mbql.schema.host" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.in" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.inside" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.integer" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.interval" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.is-empty" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.is-null" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.legacy-column-metadata" : { + "description" : "Schema for a single legacy metadata column. This is the pre-Lib equivalent of\n `:metabase.lib.schema.metadata/column`.", + "type" : "object", + "properties" : { + "field_ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Reference" + }, + "fingerprint" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.fingerprint" + }, + "visibility_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.visibility-type" + }, + "base_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "name" : { + "type" : "string" + }, + "semantic_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + }, + "display_name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "converted_timezone" : { + "$ref" : "#/components/schemas/metabase.lib.schema.expression.temporal.timezone-id" + }, + "source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.legacy-source" + }, + "effective_type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + } + }, + "required" : [ "base_type", "display_name", "name" ] + }, + "metabase.legacy-mbql.schema.length" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.log" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.lower" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.ltrim" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.max" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.median" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.metric" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.min" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.month-name" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.no-binning-options-at-top-level" : { }, + "metabase.legacy-mbql.schema.not" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.not-empty" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.not-in" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.not-null" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.now" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.offset" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.or" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.path" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.percentile" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.power" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.quarter-name" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.regex-match-first" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.relative-datetime" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.relative-time-interval" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.replace" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.require-base-type-for-field-name" : { }, + "metabase.legacy-mbql.schema.round" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.rtrim" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.segment" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.share" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.split-part" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.sqrt" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.starts-with" : { + "anyOf" : [ { + "allOf" : [ ] + }, { + "allOf" : [ ] + } ] + }, + "metabase.legacy-mbql.schema.stddev" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.subdomain" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.substring" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.sum" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.sum-where" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.template-tag" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.temporal-extract" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.text" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.time" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.time-interval" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.today" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.trim" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.upper" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.validate-temporal-unit" : { }, + "metabase.legacy-mbql.schema.value" : { + "allOf" : [ ] + }, + "metabase.legacy-mbql.schema.variable" : { + "allOf" : [ ] + }, + "metabase.lib.schema.actions.row" : { + "type" : "object", + "additionalProperties" : { } + }, + "metabase.lib.schema.binning.bin-width" : { + "description" : "Bin width (size of each bin).", + "$ref" : "#/components/schemas/metabase.lib.schema.common.positive-number" + }, + "metabase.lib.schema.binning.binning" : { + "description" : "Schema for `:binning` options passed to a `:field` clause.", + "allOf" : [ { + "type" : "object", + "properties" : { + "strategy" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.strategy" + } + }, + "required" : [ "strategy" ] + }, { + "oneOf" : [ { + "type" : "object", + "properties" : { + "strategy" : { + "const" : "default" + } + }, + "required" : [ "strategy" ] + }, { + "type" : "object", + "properties" : { + "bin-width" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.bin-width" + }, + "strategy" : { + "const" : "bin-width" + } + }, + "required" : [ "strategy", "bin-width" ] + }, { + "type" : "object", + "properties" : { + "num-bins" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.num-bins" + }, + "strategy" : { + "const" : "num-bins" + } + }, + "required" : [ "strategy", "num-bins" ] + } ] + } ] + }, + "metabase.lib.schema.binning.num-bins" : { + "description" : "Number of bins to use.", + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.binning.strategy" : { + "type" : "string", + "enum" : [ "bin-width", "default", "num-bins" ] + }, + "metabase.lib.schema.common.base-type" : { + "type" : "string" + }, + "metabase.lib.schema.common.int-greater-than-or-equal-to-zero" : { + "description" : "Schema representing an integer than must also be greater than or equal to zero.", + "type" : "integer", + "minimum" : 0 + }, + "metabase.lib.schema.common.non-blank-string" : { + "type" : "string", + "minLength" : 1 + }, + "metabase.lib.schema.common.options" : { + "default" : { }, + "type" : "object", + "properties" : { + "base-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "database-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "display-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "effective-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/uuid" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.uuid" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "semantic-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + } + }, + "required" : [ "lib/uuid" ] + }, + "metabase.lib.schema.common.positive-number" : { }, + "metabase.lib.schema.common.semantic-or-relation-type" : { + "description" : "valid semantic or relation type", + "type" : "string" + }, + "metabase.lib.schema.common.uuid" : { + "type" : "string", + "minLength" : 36, + "maxLength" : 36 + }, + "metabase.lib.schema.expression.temporal.timezone-id" : { + "allOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, { + "anyOf" : [ { + "type" : "string", + "enum" : [ "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Ciudad_Juarez", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Nelson", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CET", "CST6CDT", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EET", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Kyiv", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT0", "Greenwich", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NZ", "NZ-CHAT", "Navajo", "PRC", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kanton", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROK", "Singapore", "SystemV/AST4", "SystemV/AST4ADT", "SystemV/CST6", "SystemV/CST6CDT", "SystemV/EST5", "SystemV/EST5EDT", "SystemV/HST10", "SystemV/MST7", "SystemV/MST7MDT", "SystemV/PST8", "SystemV/PST8PDT", "SystemV/YST9", "SystemV/YST9YDT", "Turkey", "UCT", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC", "Universal", "W-SU", "WET", "Zulu" ] + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.zone-offset" + } ] + } ] + }, + "metabase.lib.schema.expression.window..offset.n" : { + "type" : "integer" + }, + "metabase.lib.schema.id.action" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.card" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.dashboard" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.database" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.dimension" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.field" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.pulse" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.saved-questions-virtual-database" : { + "description" : "The ID used to signify that a database is 'virtual' rather than physical.\n\n A fake integer ID is used so as to minimize the number of changes that need to be made on the frontend -- by using\n something that would otherwise be a legal ID, *nothing* need change there, and the frontend can query against this\n 'database' none the wiser. (This integer ID is negative which means it will never conflict with a *real* database\n ID.)\n\n This ID acts as a sort of flag. The relevant places in the middleware can check whether the DB we're querying is\n this 'virtual' database and take the appropriate actions.", + "const" : -1337 + }, + "metabase.lib.schema.id.segment" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.table" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.id.user" : { + "type" : "integer", + "minimum" : 1 + }, + "metabase.lib.schema.info.context" : { + "type" : "string", + "enum" : [ "action", "ad-hoc", "cache-refresh", "collection", "map-tiles", "pulse", "dashboard-subscription", "dashboard", "question", "csv-download", "xlsx-download", "json-download", "public-dashboard", "public-question", "public-csv-download", "public-xlsx-download", "public-json-download", "embedded-dashboard", "embedded-question", "embedded-csv-download", "embedded-xlsx-download", "embedded-json-download", "table-grid" ] + }, + "metabase.lib.schema.info.hash" : { + "type" : "string", + "format" : "byte" + }, + "metabase.lib.schema.info.info" : { + "type" : "object", + "properties" : { + "query-hash" : { + "$ref" : "#/components/schemas/metabase.lib.schema.info.hash" + }, + "action-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.action" + }, + "pivot/original-query" : { + "type" : "object", + "additionalProperties" : { } + }, + "executed-by" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.user" + }, + "card-entity-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "card-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.card" + }, + "pivot/result-metadata" : { + "oneOf" : [ { + "const" : "none" + }, { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.column" + } + } ] + }, + "context" : { + "$ref" : "#/components/schemas/metabase.lib.schema.info.context" + }, + "dashboard-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.dashboard" + }, + "metadata/model-metadata" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.lib-or-legacy-column" + } + }, + "pulse-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.pulse" + }, + "card-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + } + } + }, + "metabase.lib.schema.join.alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "metabase.lib.schema.literal..string.date" : { + "type" : "string", + "pattern" : "^\\d{4}-\\d{2}-\\d{2}$" + }, + "metabase.lib.schema.literal..string.datetime" : { + "anyOf" : [ { + "type" : "string", + "pattern" : "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$" + }, { + "type" : "string", + "pattern" : "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))$" + } ] + }, + "metabase.lib.schema.literal..string.time" : { + "anyOf" : [ { + "type" : "string", + "pattern" : "^\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$" + }, { + "type" : "string", + "pattern" : "^\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))$" + } ] + }, + "metabase.lib.schema.literal..string.zone-offset" : { + "type" : "string", + "pattern" : "(?:Z|(?:[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?))" + }, + "metabase.lib.schema.literal.date" : { + "anyOf" : [ { }, { + "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.date" + } ] + }, + "metabase.lib.schema.literal.datetime" : { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.datetime" + }, { }, { }, { } ] + }, + "metabase.lib.schema.literal.time" : { + "anyOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.literal..string.time" + }, { }, { } ] + }, + "metabase.lib.schema.metadata..column.has-field-values" : { + "type" : "string", + "enum" : [ "auto-list", "list", "none", "search" ] + }, + "metabase.lib.schema.metadata..column.legacy-source" : { + "description" : "Possible values for `column.source` -- this is added by [[metabase.lib.metadata.result-metadata]] for historical\n reasons (it is used in a few places in the FE). DO NOT use this in the backend for any purpose, use `:lib/source`\n instead.", + "type" : "string", + "enum" : [ "aggregation", "fields", "breakout", "native" ] + }, + "metabase.lib.schema.metadata..column.remapping.external" : { + "description" : "External remapping (Dimension) for a column. From the [[metabase.warehouse-schema.models.dimension]] with `type =\n external` associated with a `Field` in the application database.\n See [[metabase.query-processor.middleware.add-dimension-projections]] for what this means.", + "type" : "object", + "properties" : { + "field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.dimension" + }, + "lib/type" : { + "const" : "metadata.column.remapping/external" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + } + }, + "required" : [ "lib/type", "id", "name", "field-id" ] + }, + "metabase.lib.schema.metadata..column.remapping.internal" : { + "description" : "Internal remapping (FieldValues) for a column. From [[metabase.warehouse-schema.models.dimension]] with `type =\n internal` and the [[metabase.warehouse-schema.models.field-values]] associated with a `Field` in the application\n database. See [[metabase.query-processor.middleware.add-dimension-projections]] for what this means.", + "type" : "object", + "properties" : { + "human-readable-values" : { + "type" : "array", + "items" : { } + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.dimension" + }, + "lib/type" : { + "const" : "metadata.column.remapping/internal" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "values" : { + "type" : "array", + "items" : { } + } + }, + "required" : [ "lib/type", "id", "name", "values", "human-readable-values" ] + }, + "metabase.lib.schema.metadata..column.source" : { + "description" : "`:lib/source` -- where a column came from with respect to the current stage.\n\n Traditionally, `:lib/source` meant something slightly different -- it denoted what part of the current stage a\n column came from, and thus included two additional options -- `:source/fields`, for columns used by `:fields`, and\n `:source/breakouts`, for columns used in `:breakout`. This was not really useful information and made `:lib/source`\n itself useless for determining if a column was 'inherited' or not (i.e., whether it came from a previous stage,\n source card, or a join, and should get field name refs instead of field ID refs --\n see [[metabase.lib.field.util/inherited-column?]]).", + "type" : "string", + "enum" : [ "source/card", "source/native", "source/previous-stage", "source/table-defaults", "source/aggregations", "source/joins", "source/expressions", "source/implicitly-joinable" ] + }, + "metabase.lib.schema.metadata..column.validate-expression-source" : { + "description" : "Only allow `:lib/expression-name` when `:lib/source` is `:source/expressions`. If it's anything else, it probably\n means it's getting incorrectly propagated from a previous stage (QUE-1342)." + }, + "metabase.lib.schema.metadata..column.validate-native-column" : { + "description" : "Certain keys cannot possibly be set when a column comes from directly from native query results, for example\n `:lib/breakout?` or join aliases" + }, + "metabase.lib.schema.metadata..column.validate-table-defaults-column" : { + "description" : "A column with :lib/source :source/table-defaults cannot possibly have a join alias." + }, + "metabase.lib.schema.metadata..column.visibility-type" : { + "type" : "string", + "enum" : [ "retired", "sensitive", "normal", "hidden", "details-only" ] + }, + "metabase.lib.schema.metadata.column" : { + "description" : "Malli schema for a valid map of column metadata, which can mean one of two things:\n\n 1. Metadata about a particular Field in the application database. This will always have an `:id`\n\n 2. Results metadata from a column in `data.cols` and/or `data.results_metadata.columns` in a Query Processor\n response, or saved in something like `Card.result_metadata`. These *may* have an `:id`, or may not -- columns\n coming back from native queries or things like `SELECT count(*)` aren't associated with any particular `Field`\n and thus will not have an `:id`.\n\n Now maybe these should be two different schemas, but `:id` being there or not is the only real difference; besides\n that they are largely compatible. So they're the same for now. We can revisit this in the future if we actually want\n to differentiate between the two versions.", + "allOf" : [ { + "type" : "object", + "properties" : { + "visibility-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.visibility-type" + }, + "fk-join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "lib/external-remap" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.remapping.external" + }, + "inherited-temporal-unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + }, + "lib/source-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.source-column-alias" + }, + "database-type" : { + "type" : "string" + }, + "lib/type" : { + "default" : "metadata/column", + "const" : "metadata/column" + }, + "fingerprint" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.fingerprint" + }, + "display-name" : { + "type" : "string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "effective-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/deduplicated-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.deduplicated-name" + }, + "base-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/original-expression-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "fk-field-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "type" : "string" + }, + "lib/card-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.card" + }, + "lib/expression-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "lib/breakout?" : { + "type" : "boolean" + }, + "metabase.lib.field/temporal-unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + }, + "metabase.lib.field/binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning" + }, + "lib/model-display-name" : { + "type" : "string" + }, + "has-field-values" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.has-field-values" + }, + "lib/internal-remap" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.remapping.internal" + }, + "selected?" : { + "type" : "boolean" + }, + "source-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.legacy-source" + }, + "metabase.lib.join/join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + }, + "fk-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "lib/original-binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning" + }, + "lib/original-join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + }, + "lib/original-display-name" : { + "type" : "string" + }, + "lib/source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.source" + }, + "active" : { + "type" : "boolean" + }, + "lib/ref-display-name" : { + "type" : "string" + }, + "lib/original-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.original-name" + }, + "lib/hack-original-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.original-name" + }, + "semantic-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + }, + "fk-target-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "field-ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Reference" + }, + "lib/desired-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.desired-column-alias" + } + }, + "required" : [ "lib/type", "name", "base-type" ] + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.kebab-cased-map" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-expression-source" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-native-column" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-table-defaults-column" + } ] + }, + "metabase.lib.schema.metadata.deduplicated-name" : { + "type" : "string", + "description" : "The simply-deduplicated name that was historically used in QP results metadata (originally calculated by\n the [[metabase.query-processor.middleware.annotate]] middleware, now calculated\n by [[metabase.lib.middleware.result-metadata]]). This just adds suffixes to column names e.g. `ID` and `ID` become\n `ID` and `ID_2`, respectively. Kept around because many old field refs use this column name.", + "optional" : true + }, + "metabase.lib.schema.metadata.desired-column-alias" : { + "type" : "string", + "minLength" : 1 + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.global" : { + "description" : "Fingerprint values that Fields of all types should have.", + "type" : "object", + "properties" : { + "distinct-count" : { + "type" : "integer" + }, + "nil%" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + } + } + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.number" : { + "description" : "Schema for fingerprint information for Fields deriving from `:type/Number`.", + "type" : "object", + "properties" : { + "avg" : { + "type" : "number" + }, + "max" : { + "type" : "number" + }, + "min" : { + "type" : "number" + }, + "q1" : { + "type" : "number" + }, + "q3" : { + "type" : "number" + }, + "sd" : { + "type" : "number" + } + } + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.temporal" : { + "description" : "Schema for fingerprint information for Fields deriving from `:type/Temporal`.", + "type" : "object", + "properties" : { + "earliest" : { + "type" : "string" + }, + "latest" : { + "type" : "string" + } + } + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.text" : { + "description" : "Schema for fingerprint information for Fields deriving from `:type/Text`.", + "type" : "object", + "properties" : { + "average-length" : { + "type" : "number" + }, + "percent-email" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + }, + "percent-json" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + }, + "percent-state" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + }, + "percent-url" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.percent" + } + } + }, + "metabase.lib.schema.metadata.fingerprint..fingerprint.type-specific" : { + "description" : "Schema for type-specific fingerprint information.", + "allOf" : [ { + "type" : "object", + "additionalProperties" : { + "type" : "object", + "properties" : { } + } + }, { + "type" : "object", + "properties" : { + "type/DateTime" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.temporal" + }, + "type/Number" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.number" + }, + "type/Text" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.text" + } + } + } ] + }, + "metabase.lib.schema.metadata.fingerprint.fingerprint" : { + "description" : "Schema for a Field 'fingerprint' generated as part of the analysis stage. Used to power the 'classification'\n sub-stage of analysis. Stored as the `fingerprint` column of Field.", + "type" : "object", + "properties" : { + "experimental" : { + "type" : "object", + "additionalProperties" : { } + }, + "global" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.global" + }, + "type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint..fingerprint.type-specific" + } + } + }, + "metabase.lib.schema.metadata.fingerprint.percent" : { + "description" : "Schema for something represting a percentage. A floating-point value between (inclusive) 0 and 1.", + "type" : "number" + }, + "metabase.lib.schema.metadata.kebab-cased-map" : { }, + "metabase.lib.schema.metadata.lib-or-legacy-column" : { + "description" : "Schema for the maps in card `:result-metadata` and similar. These can be either\n `:metabase.lib.schema.metadata/result-metadata` (i.e., kebab-cased) maps, or map snake_cased as returned by QP\n metadata, but they should NOT be a mixture of both -- if we mixed them somehow there is a bug in our code.", + "oneOf" : [ { + "description" : "Malli schema for a valid map of column metadata, which can mean one of two things:\n\n 1. Metadata about a particular Field in the application database. This will always have an `:id`\n\n 2. Results metadata from a column in `data.cols` and/or `data.results_metadata.columns` in a Query Processor\n response, or saved in something like `Card.result_metadata`. These *may* have an `:id`, or may not -- columns\n coming back from native queries or things like `SELECT count(*)` aren't associated with any particular `Field`\n and thus will not have an `:id`.\n\n Now maybe these should be two different schemas, but `:id` being there or not is the only real difference; besides\n that they are largely compatible. So they're the same for now. We can revisit this in the future if we actually want\n to differentiate between the two versions.", + "allOf" : [ { + "type" : "object", + "properties" : { + "visibility-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.visibility-type" + }, + "fk-join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "lib/external-remap" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.remapping.external" + }, + "inherited-temporal-unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + }, + "lib/source-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.source-column-alias" + }, + "database-type" : { + "type" : "string" + }, + "lib/type" : { + "default" : "metadata/column", + "const" : "metadata/column" + }, + "fingerprint" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.fingerprint.fingerprint" + }, + "display-name" : { + "type" : "string" + }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "effective-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/deduplicated-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.deduplicated-name" + }, + "base-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.base-type" + }, + "lib/original-expression-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "fk-field-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "type" : "string" + }, + "lib/card-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.card" + }, + "lib/expression-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "lib/breakout?" : { + "type" : "boolean" + }, + "metabase.lib.field/temporal-unit" : { + "$ref" : "#/components/schemas/metabase.lib.schema.temporal-bucketing.unit" + }, + "metabase.lib.field/binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning" + }, + "lib/model-display-name" : { + "type" : "string" + }, + "has-field-values" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.has-field-values" + }, + "lib/internal-remap" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.remapping.internal" + }, + "selected?" : { + "type" : "boolean" + }, + "source-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.legacy-source" + }, + "metabase.lib.join/join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + }, + "fk-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "lib/original-binning" : { + "$ref" : "#/components/schemas/metabase.lib.schema.binning.binning" + }, + "lib/original-join-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.join.alias" + }, + "lib/original-display-name" : { + "type" : "string" + }, + "lib/source" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.source" + }, + "active" : { + "type" : "boolean" + }, + "lib/ref-display-name" : { + "type" : "string" + }, + "lib/original-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.original-name" + }, + "lib/hack-original-name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.original-name" + }, + "semantic-type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.semantic-or-relation-type" + }, + "fk-target-field-id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.id.field" + }, + "field-ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.Reference" + }, + "lib/desired-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.desired-column-alias" + } + }, + "required" : [ "lib/type", "name", "base-type" ] + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata.kebab-cased-map" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-expression-source" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-native-column" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.metadata..column.validate-table-defaults-column" + } ] + }, { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.legacy-column-metadata" + } ] + }, + "metabase.lib.schema.metadata.original-name" : { + "type" : "string", + "description" : "The original name of the column as it appeared in the very first place it came from (i.e., the physical name of the\n column in the table it appears in). This should be the same as the `:lib/source-column-alias` for the very first\n usage of the column.\n Allowed to be blank because some databases like SQL Server allow blank column names.", + "optional" : true + }, + "metabase.lib.schema.metadata.source-column-alias" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "metabase.lib.schema.parameter..dimension.target" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.legacy-field-ref" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.legacy-expression-ref" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.template-tag" + } ] + }, + "metabase.lib.schema.parameter.DimensionOptions" : { + "type" : "object", + "properties" : { + "stage-number" : { + "type" : "integer" + } + } + }, + "metabase.lib.schema.parameter.dimension" : { }, + "metabase.lib.schema.parameter.legacy-expression-ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.expression" + }, + "metabase.lib.schema.parameter.legacy-field-ref" : { + "$ref" : "#/components/schemas/metabase.legacy-mbql.schema.field" + }, + "metabase.lib.schema.parameter.parameter" : { + "type" : "object", + "properties" : { + "default" : { }, + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "name" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "required" : { }, + "slug" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + }, + "target" : { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.target" + }, + "type" : { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.type" + }, + "value" : { } + }, + "required" : [ "type" ] + }, + "metabase.lib.schema.parameter.target" : { + "oneOf" : [ { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.legacy-field-ref" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.dimension" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.variable" + } ] + }, + "metabase.lib.schema.parameter.template-tag" : { + "type" : "array", + "prefixItems" : [ { + "const" : "template-tag" + }, { + "oneOf" : [ { + "type" : "object", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + } + }, + "required" : [ "id" ] + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.common.non-blank-string" + } ] + } ] + }, + "metabase.lib.schema.parameter.type" : { + "type" : "string", + "enum" : [ "category", "date", "string/!=", "number/=", "string/ends-with", "location/state", "boolean/=", "number/between", "date/all-options", "number", "number/>=", "location/country", "temporal-unit", "string/=", "string/does-not-contain", "date/range", "string/starts-with", "string/contains", "date/single", "location/city", "id", "date/relative", "location/zip_code", "date/month-year", "date/quarter-year", "number/!=", "boolean", "text", "number/<=" ] + }, + "metabase.lib.schema.parameter.variable" : { + "type" : "array", + "prefixItems" : [ { + "const" : "variable" + }, { + "$ref" : "#/components/schemas/metabase.lib.schema.parameter.template-tag" + } ] + }, + "metabase.lib.schema.parameter.widget-type" : { + "type" : "string", + "enum" : [ "none", "category", "date", "string/!=", "number/=", "string/ends-with", "location/state", "boolean/=", "number/between", "date/all-options", "number", "number/>=", "location/country", "temporal-unit", "string/=", "string/does-not-contain", "date/range", "string/starts-with", "string/contains", "date/single", "location/city", "id", "date/relative", "location/zip_code", "date/month-year", "date/quarter-year", "number/!=", "boolean", "text", "number/<=" ] + }, + "metabase.lib.schema.template-tag..raw-value.type" : { + "type" : "string", + "enum" : [ "date", "number", "boolean", "text" ] + }, + "metabase.lib.schema.temporal-bucketing.unit" : { + "type" : "string", + "enum" : [ "quarter", "day", "hour", "week", "second", "default", "day-of-week", "hour-of-day", "month", "month-of-year", "day-of-month", "year", "day-of-year", "millisecond", "year-of-era", "second-of-minute", "week-of-year", "quarter-of-year", "minute-of-hour", "minute" ] + }, + "metabase.logger.api.log-level" : { + "type" : "string", + "enum" : [ "off", "fatal", "error", "warn", "info", "debug", "trace" ] + }, + "metabase.logger.api.time-unit" : { + "type" : "string", + "enum" : [ "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds" ] + }, + "metabase.notification.models.FullyHydratedNotification" : { + "description" : "Fully hydrated notification.", + "oneOf" : [ { + "oneOf" : [ { + "type" : "object", + "properties" : { + "creator" : { + "type" : "object", + "properties" : { } + }, + "handlers" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "active" : { + "type" : "boolean" + }, + "channel" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.Channel" + }, + "channel_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "channel_type" : { }, + "notification_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "recipients" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationRecipient" + } + }, + "template" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.ChannelTemplate" + }, + "template_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "channel_type" ] + } + }, + "payload" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" + }, + "payload_id" : { + "type" : "null" + }, + "payload_type" : { + "type" : "string", + "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] + }, + "subscriptions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription" + } + } + }, + "required" : [ "payload_type", "payload" ] + }, { + "type" : "object", + "properties" : { + "creator" : { + "type" : "object", + "properties" : { } + }, + "handlers" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "active" : { + "type" : "boolean" + }, + "channel" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.Channel" + }, + "channel_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "channel_type" : { }, + "notification_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "recipients" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationRecipient" + } + }, + "template" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.ChannelTemplate" + }, + "template_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "channel_type" ] + } + }, + "payload_id" : { + "type" : "null" + }, + "payload_type" : { + "type" : "string", + "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] + }, + "subscriptions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription" + } + } + }, + "required" : [ "payload_type" ] + } ] + }, { + "oneOf" : [ { + "type" : "object", + "properties" : { + "creator" : { + "type" : "object", + "properties" : { } + }, + "creator_id" : { + "type" : "integer" + }, + "handlers" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "active" : { + "type" : "boolean" + }, + "channel" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.Channel" + }, + "channel_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "channel_type" : { }, + "notification_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "recipients" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationRecipient" + } + }, + "template" : { + "$ref" : "#/components/schemas/metabase.channel.models.channel.ChannelTemplate" + }, + "template_id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "channel_type" ] + } + }, + "payload" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" + }, + "payload_id" : { + "type" : "integer" + }, + "payload_type" : { + "type" : "string", + "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] + }, + "subscriptions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription" + } + } + }, + "required" : [ "payload_type", "payload" ] + }, { "type" : "object", "properties" : { "creator" : { "type" : "object", "properties" : { } }, + "creator_id" : { + "type" : "integer" + }, "handlers" : { "type" : "array", "items" : { @@ -1434,11 +4557,8 @@ "required" : [ "channel_type" ] } }, - "payload" : { - "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" - }, "payload_id" : { - "type" : "null" + "type" : "integer" }, "payload_type" : { "type" : "string", @@ -1451,8 +4571,8 @@ } } }, - "required" : [ "payload_type", "payload" ] - }, { } ] + "required" : [ "payload_type" ] + } ] }, { "oneOf" : [ { "type" : "object", @@ -1461,9 +4581,6 @@ "type" : "object", "properties" : { } }, - "creator_id" : { - "type" : "integer" - }, "handlers" : { "type" : "array", "items" : { @@ -1507,13 +4624,6 @@ "payload" : { "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" }, - "payload_id" : { - "type" : "integer" - }, - "payload_type" : { - "type" : "string", - "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] - }, "subscriptions" : { "type" : "array", "items" : { @@ -1521,10 +4631,8 @@ } } }, - "required" : [ "payload_type", "payload" ] - }, { } ] - }, { - "oneOf" : [ { + "required" : [ "payload" ] + }, { "type" : "object", "properties" : { "creator" : { @@ -1571,18 +4679,14 @@ "required" : [ "channel_type" ] } }, - "payload" : { - "$ref" : "#/components/schemas/metabase.notification.models.NotificationCard" - }, "subscriptions" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/metabase.notification.models.NotificationSubscription" } } - }, - "required" : [ "payload" ] - }, { } ] + } + } ] } ] }, "metabase.notification.models.Notification" : { @@ -1898,6 +5002,16 @@ } } }, + "metabase.timeline.api.timeline.Timeline" : { + "type" : "object", + "properties" : { + "id" : { + "type" : "integer", + "minimum" : 1 + } + }, + "required" : [ "id" ] + }, "metabase.timeline.api.timeline.include" : { "type" : "string", "enum" : [ "events" ] @@ -1957,6 +5071,18 @@ } }, "required" : [ "schedule_type" ] + }, + "metabot.reaction.redirect" : { + "type" : "object", + "properties" : { + "type" : { + "const" : "metabot.reaction/redirect" + }, + "url" : { + "type" : "string" + } + }, + "required" : [ "type", "url" ] } } }, @@ -1975,12 +5101,34 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] }, "post" : { "summary" : "POST /api/action/", "description" : "Create a new action.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2085,6 +5233,17 @@ "summary" : "GET /api/action/public", "description" : "Fetch a list of Actions with public UUIDs. These actions are publicly-accessible *if* public sharing is enabled.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] } }, @@ -2102,6 +5261,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] }, "delete" : { @@ -2117,6 +5287,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] } }, @@ -2142,6 +5323,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] } }, @@ -2159,6 +5351,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2278,6 +5481,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2311,6 +5525,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] }, "delete" : { @@ -2326,6 +5551,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/action" ] } }, @@ -2334,6 +5570,17 @@ "summary" : "GET /api/activity/most_recently_viewed_dashboard", "description" : "Get the most recently viewed dashboard for the current user. Returns a 204 if the user has not viewed any dashboards\n in the last 24 hours.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/activity" ] } }, @@ -2342,6 +5589,17 @@ "summary" : "GET /api/activity/popular_items", "description" : "Get the list of 5 popular things on the instance. Query takes 8 and limits to 5 so that if it finds anything\n archived, deleted, etc it can usually still get 5. ", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/activity" ] } }, @@ -2350,6 +5608,17 @@ "summary" : "GET /api/activity/recent_views", "description" : "Get a list of 100 models (cards, models, tables, dashboards, and collections) that the current user has been viewing most\n recently. Return a maximum of 20 model of each, if they've looked at at least 20.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/activity" ] } }, @@ -2377,12 +5646,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/activity" ] }, "post" : { "summary" : "POST /api/activity/recents", "description" : "Adds a model to the list of recently selected items.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2433,6 +5724,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/alert" ] } }, @@ -2450,6 +5752,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/alert" ] } }, @@ -2467,6 +5780,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/alert" ] } }, @@ -2475,6 +5799,17 @@ "summary" : "GET /api/analytics/anonymous-stats", "description" : "Anonymous usage stats. Endpoint for testing, and eventually exposing this to instance admins to let them see\n what is being phoned home.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/analytics" ] } }, @@ -2483,6 +5818,17 @@ "summary" : "POST /api/api-key/", "description" : "Create a new API key (and an associated `User`) with the provided name and group ID.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2510,6 +5856,17 @@ "summary" : "GET /api/api-key/", "description" : "Get a list of API keys with the default scope. Non-paginated.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/api-key" ] } }, @@ -2518,6 +5875,17 @@ "summary" : "GET /api/api-key/count", "description" : "Get the count of API keys in the DB with the default scope.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/api-key" ] } }, @@ -2535,6 +5903,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -2570,6 +5949,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/api-key" ] } }, @@ -2587,6 +5977,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/api-key" ] } }, @@ -2604,6 +6005,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2626,6 +6038,17 @@ "type" : "integer" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2654,6 +6077,17 @@ } ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2698,6 +6132,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2751,6 +6196,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2806,6 +6262,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2870,6 +6337,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2917,6 +6395,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2933,6 +6422,17 @@ "enum" : [ "adhoc", "transform", "table", "question", "field", "segment", "model" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -2982,6 +6482,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -3040,6 +6551,17 @@ }, "description" : "invalid show value" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/automagic-dashboards" ] } }, @@ -3048,6 +6570,17 @@ "summary" : "GET /api/bookmark/", "description" : "Fetch all bookmarks for the user", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bookmark" ] } }, @@ -3056,6 +6589,17 @@ "summary" : "PUT /api/bookmark/ordering", "description" : "Sets the order of bookmarks for user.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3111,6 +6655,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bookmark" ] }, "delete" : { @@ -3134,6 +6689,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bookmark" ] } }, @@ -3142,6 +6708,17 @@ "summary" : "GET /api/bug-reporting/connection-pool-details", "description" : "Returns database connection pool info for the current Metabase instance.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bug-reporting" ] } }, @@ -3150,6 +6727,17 @@ "summary" : "GET /api/bug-reporting/details", "description" : "Returns version and system information relevant to filing a bug report against Metabase.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/bug-reporting" ] } }, @@ -3189,12 +6777,34 @@ }, "description" : "Model id to get configuration for." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cache" ] }, "put" : { "summary" : "PUT /api/cache/", "description" : "Store cache configuration.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3225,6 +6835,17 @@ "summary" : "DELETE /api/cache/", "description" : "Delete cache configurations.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3304,6 +6925,17 @@ }, "description" : "A list of question ids" } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cache" ] } }, @@ -3330,12 +6962,34 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] }, "post" : { "summary" : "POST /api/card/", "description" : "Create a new `Card`. Card `type` can be `question`, `metric`, or `model`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3425,6 +7079,17 @@ "summary" : "POST /api/card/collections", "description" : "Bulk update endpoint for Card Collections. Move a set of `Cards` with `card_ids` into a `Collection` with\n `collection_id`, or remove them from any Collections by passing a `null` `collection_id`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3458,6 +7123,17 @@ "summary" : "GET /api/card/embeddable", "description" : "Fetch a list of Cards where `enable_embedding` is `true`. The cards can be embedded using the embedding endpoints\n and a signed JWT.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3475,6 +7151,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3497,6 +7184,17 @@ "summary" : "GET /api/card/public", "description" : "Fetch a list of Cards with public UUIDs. These cards are publicly-accessible *if* public sharing is enabled.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3530,6 +7228,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3555,6 +7264,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3572,6 +7292,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] }, "delete" : { @@ -3587,6 +7318,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3599,11 +7341,28 @@ "name" : "card-id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3652,6 +7411,17 @@ "$ref" : "#/components/schemas/metabase.query-processor.schema.export-format" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3691,10 +7461,16 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } }, { "in" : "query", "name" : "ignore_view", @@ -3711,6 +7487,17 @@ "enum" : [ "collection" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] }, "put" : { @@ -3733,6 +7520,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3834,6 +7632,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3851,6 +7660,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3868,6 +7688,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3899,6 +7730,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3911,11 +7753,28 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3953,6 +7812,17 @@ "required" : false, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/card" ] } }, @@ -3961,6 +7831,17 @@ "summary" : "POST /api/cards/dashboards", "description" : "Get the dashboards that multiple cards appear in. The response is a sequence of maps, each of which has a `card_id`\n and `dashboards`. `dashboard` may include an `:error` key, either `:unreadable-dashboard` or\n `:unwritable-dashboard`. In the case of an `unreadable-dashboard` the dashboard details (name, ID) will NOT be\n present.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -3989,6 +7870,17 @@ "summary" : "POST /api/cards/move", "description" : "Moves a number of Cards to a single collection or dashboard.\n\n For now, just either succeed or fail as a batch - we can think more about error handling later down the road.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4027,6 +7919,17 @@ "summary" : "GET /api/channel/", "description" : "Get all channels", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4048,6 +7951,17 @@ "summary" : "POST /api/channel/", "description" : "Create a channel", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4087,6 +8001,17 @@ "summary" : "POST /api/channel/test", "description" : "Test a channel connection", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4123,6 +8048,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/channel" ] }, "put" : { @@ -4138,6 +8074,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4175,12 +8122,34 @@ "summary" : "POST /api/cloud-migration/", "description" : "Initiate a new cloud migration.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cloud-migration" ] }, "get" : { "summary" : "GET /api/cloud-migration/", "description" : "Get the latest cloud migration, if any.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cloud-migration" ] } }, @@ -4189,6 +8158,17 @@ "summary" : "PUT /api/cloud-migration/cancel", "description" : "Cancel any ongoing cloud migrations, if any.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/cloud-migration" ] } }, @@ -4229,12 +8209,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] }, "post" : { "summary" : "POST /api/collection/", "description" : "Create a new Collection.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4284,6 +8286,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] }, "put" : { @@ -4306,6 +8319,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4346,6 +8370,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4354,6 +8389,24 @@ "summary" : "GET /api/collection/root/dashboard-question-candidates", "description" : "Find cards in the root collection that can be moved into dashboards in the root collection. (Same as the above\n endpoint, but for the root collection)", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:data -> , :name -> , :description -> , :sole_dashboard_info -> , :name -> , :description -> }>}>, :total -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.collections.api.DashboardQuestionCandidatesResponse" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4435,6 +8488,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4443,6 +8507,24 @@ "summary" : "POST /api/collection/root/move-dashboard-question-candidates", "description" : "Move candidate cards to the dashboards they appear in (for the root collection)", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:moved -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.collections.api.MoveDashboardQuestionCandidatesResponse" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4472,6 +8554,17 @@ "summary" : "GET /api/collection/trash", "description" : "Fetch the trash collection, as in `/api/collection/:trash-id`", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4521,6 +8614,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4533,11 +8637,28 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] }, "put" : { @@ -4553,6 +8674,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4603,6 +8735,24 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "map where {:data -> , :name -> , :description -> , :sole_dashboard_info -> , :name -> , :description -> }>}>, :total -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.collections.api.DashboardQuestionCandidatesResponse" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4615,10 +8765,16 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } }, { "in" : "query", "name" : "models", @@ -4686,6 +8842,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/collection" ] } }, @@ -4703,6 +8870,24 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "map where {:moved -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.collections.api.MoveDashboardQuestionCandidatesResponse" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4740,12 +8925,34 @@ "enum" : [ "all", "mine", "archived" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "post" : { "summary" : "POST /api/dashboard/", "description" : "Create a new Dashboard.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4794,6 +9001,17 @@ "summary" : "GET /api/dashboard/embeddable", "description" : "Fetch a list of Dashboards where `enable_embedding` is `true`. The dashboards can be embedded using the embedding\n endpoints and a signed JWT.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4826,6 +9044,17 @@ } } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4861,6 +9090,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -4899,6 +9139,17 @@ "summary" : "GET /api/dashboard/public", "description" : "Fetch a list of Dashboards with public UUIDs. These dashboards are publicly-accessible *if* public sharing is\n enabled.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4907,6 +9158,17 @@ "summary" : "POST /api/dashboard/save", "description" : "Save a denormalized description of dashboard.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4924,6 +9186,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -4959,6 +9232,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5035,6 +9319,17 @@ "$ref" : "#/components/schemas/metabase.query-processor.schema.export-format" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5113,6 +9408,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "post" : { @@ -5137,6 +9443,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5169,6 +9486,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "delete" : { @@ -5184,6 +9512,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5201,6 +9540,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5246,11 +9596,28 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "delete" : { @@ -5266,6 +9633,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] }, "put" : { @@ -5281,6 +9659,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5447,6 +9836,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5554,6 +9954,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5585,6 +9996,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5610,6 +10032,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5627,6 +10060,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5639,11 +10083,28 @@ "name" : "id", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "anyOf" : [ { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, { + "description" : "String must be a valid 21-character NanoID string.", + "type" : "string", + "pattern" : "^[A-Za-z0-9_\\-]{21}$" + } ] + } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5661,6 +10122,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/dashboard" ] } }, @@ -5726,12 +10198,34 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] }, "post" : { "summary" : "POST /api/database/", "description" : "Add a new `Database`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5790,6 +10284,17 @@ "summary" : "POST /api/database/sample_database", "description" : "Add the sample database as a new `Database`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -5798,6 +10303,17 @@ "summary" : "POST /api/database/validate", "description" : "Validate that we can connect to a database given a set of details.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5864,6 +10380,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] }, "put" : { @@ -5879,6 +10406,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -5947,6 +10485,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -5980,6 +10529,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6012,6 +10572,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6029,6 +10600,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6046,6 +10628,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6063,6 +10656,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6080,6 +10684,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6097,6 +10712,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6146,6 +10772,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6163,6 +10800,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6196,6 +10844,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6229,6 +10888,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6262,6 +10932,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6279,6 +10960,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6296,6 +10988,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6313,6 +11016,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6321,6 +11035,17 @@ "summary" : "GET /api/database/{virtual-db}/datasets", "description" : "Returns a list of all the datasets found for the saved questions virtual database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6329,6 +11054,17 @@ "summary" : "GET /api/database/{virtual-db}/datasets/{schema}", "description" : "Returns a list of Tables for the datasets virtual database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6337,6 +11073,17 @@ "summary" : "GET /api/database/{virtual-db}/metadata", "description" : "Endpoint that provides metadata for the Saved Questions 'virtual' database. Used for fooling the frontend\n and allowing it to treat the Saved Questions virtual DB just like any other database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6345,6 +11092,17 @@ "summary" : "GET /api/database/{virtual-db}/schema/{schema}", "description" : "Returns a list of Tables for the saved questions virtual database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6353,6 +11111,17 @@ "summary" : "GET /api/database/{virtual-db}/schemas", "description" : "Returns a list of all the schemas found for the saved questions virtual database.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/database" ] } }, @@ -6361,6 +11130,17 @@ "summary" : "POST /api/dataset/", "description" : "Execute a query and retrieve the results in the usual format. The query will not use the cache.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6383,6 +11163,17 @@ "summary" : "POST /api/dataset/native", "description" : "Fetch a native version of an MBQL query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6412,6 +11203,17 @@ "summary" : "POST /api/dataset/parameter/remapping", "description" : "Return the remapped parameter values for cards or dashboards that are being edited.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6450,6 +11252,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6479,6 +11292,17 @@ "summary" : "POST /api/dataset/parameter/values", "description" : "Return parameter values for cards or dashboards that are being edited.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6508,6 +11332,17 @@ "summary" : "POST /api/dataset/pivot", "description" : "Generate a pivoted dataset for an ad-hoc query", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6533,6 +11368,17 @@ "summary" : "POST /api/dataset/query_metadata", "description" : "Get all of the required query metadata for an ad-hoc query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6565,6 +11411,17 @@ "$ref" : "#/components/schemas/metabase.query-processor.schema.export-format" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6602,6 +11459,17 @@ "summary" : "GET /api/ee/advanced-permissions/application/graph", "description" : "Fetch a graph of Application Permissions.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/advanced-permissions/application" ] }, "put" : { @@ -6624,6 +11492,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6660,6 +11539,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/advanced-permissions/impersonation" ] } }, @@ -6677,6 +11567,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/advanced-permissions/impersonation" ] } }, @@ -6685,6 +11586,17 @@ "summary" : "POST /api/ee/ai-entity-analysis/analyze-chart", "description" : "Analyze a chart image using an AI vision model. This function sends the image data to a separate external AI service for analysis.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6732,6 +11644,17 @@ "summary" : "POST /api/ee/ai-sql-fixer/fix", "description" : "Suggest fixes for a SQL query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6766,6 +11689,17 @@ "summary" : "POST /api/ee/ai-sql-generation/generate", "description" : "Generate a SQL query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6795,6 +11729,17 @@ "summary" : "GET /api/ee/audit-app/user/audit-info", "description" : "Gets audit info for the current user if he has permissions to access the audit collection.\n Otherwise return an empty map.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/audit-app/user" ] } }, @@ -6812,6 +11757,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/audit-app/user" ] } }, @@ -6820,6 +11776,17 @@ "summary" : "POST /api/ee/autodescribe/card/summarize", "description" : "Summarize a question.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -6900,6 +11867,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/autodescribe" ] } }, @@ -6908,6 +11886,17 @@ "summary" : "GET /api/ee/billing/", "description" : "Get billing information. This acts as a proxy between `metabase-billing-info-url` and the client,\n using the embedding token and signed in user's email to fetch the billing information.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/billing" ] } }, @@ -6916,6 +11905,17 @@ "summary" : "GET /api/ee/content-translation/csv", "description" : "Provides content translation dictionary in CSV", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/content-translation" ] } }, @@ -6931,6 +11931,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/content-translation" ] } }, @@ -6939,6 +11950,17 @@ "summary" : "POST /api/ee/content-translation/upload-dictionary", "description" : "Upload a CSV of content translations", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -6964,6 +11986,60 @@ "tags" : [ "/api/ee/content-translation" ] } }, + "/api/ee/database-replication/connection/{database-id}" : { + "post" : { + "summary" : "POST /api/ee/database-replication/connection/{database-id}", + "description" : "Create a new PG replication connection for the specified database.", + "parameters" : [ { + "in" : "path", + "name" : "database-id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/database-replication" ] + }, + "delete" : { + "summary" : "DELETE /api/ee/database-replication/connection/{database-id}", + "description" : "Delete PG replication connection for the specified database.", + "parameters" : [ { + "in" : "path", + "name" : "database-id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/database-replication" ] + } + }, "/api/ee/database-routing/destination-database" : { "post" : { "summary" : "POST /api/ee/database-routing/destination-database", @@ -6976,6 +12052,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7028,6 +12115,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7046,11 +12144,111 @@ "tags" : [ "/api/ee/database-routing" ] } }, + "/api/ee/email/override" : { + "put" : { + "summary" : "PUT /api/ee/email/override", + "description" : "Update multiple cloud email Settings. You must be a superuser or have `setting` permission to do this.\n Calling this automatically sets `cloud-smtp-enabled` to true if the settings are valid.", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "email-smtp-host-override" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-password-override" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-port-override" : { + "anyOf" : [ { + "type" : "integer" + }, { + "type" : "null" + } ] + }, + "email-smtp-security-override" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-username-override" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + } + } + } + } + } + }, + "tags" : [ "/api/ee/email" ] + }, + "delete" : { + "summary" : "DELETE /api/ee/email/override", + "description" : "Clear all cloud email related settings. You must be a superuser or have `setting` permission to do this.", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/ee/email" ] + } + }, "/api/ee/gsheets/connection" : { "post" : { "summary" : "POST /api/ee/gsheets/connection", "description" : "Hook up a new google drive folder or sheet that will be watched and have its content ETL'd into Metabase.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:error -> , :message -> }, or one of , :created_at -> , :sync_started_at -> , :created_by_id -> , :db_id -> } | active = map where {:url -> , :created_at -> , :last_sync_at -> , :next_sync_at -> , :created_by_id -> , :db_id -> } | error = map where {:url -> , :created_at -> , :error_message -> , :created_by_id -> , :db_id -> }> dispatched by :status", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/gsheets.response" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7073,12 +12271,41 @@ "summary" : "GET /api/ee/gsheets/connection", "description" : "Check the status of a connection. This endpoint gets polled by FE to determine when to\n stop showing the setup widget.\n\n Returns the gsheets shape, with the attached datawarehouse db id at `:db_id`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:error -> , :message -> }, or one of , :created_at -> , :sync_started_at -> , :created_by_id -> , :db_id -> } | active = map where {:url -> , :created_at -> , :last_sync_at -> , :next_sync_at -> , :created_by_id -> , :db_id -> } | error = map where {:url -> , :created_at -> , :error_message -> , :created_by_id -> , :db_id -> }> dispatched by :status", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/gsheets.response" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/gsheets" ] }, "delete" : { "summary" : "DELETE /api/ee/gsheets/connection", "description" : "Disconnect the google service account. There is only one (or zero) at the time of writing.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/gsheets" ] } }, @@ -7087,6 +12314,17 @@ "summary" : "POST /api/ee/gsheets/connection/sync", "description" : "Force a sync of the connection now.\n\n Returns the gsheets shape, with the attached datawarehouse db id at `:db_id`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/gsheets" ] } }, @@ -7095,6 +12333,30 @@ "summary" : "GET /api/ee/gsheets/service-account", "description" : "Checks to see if service-account is setup or not, delegates to HM only if we haven't set it from a metabase cluster\n before.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:email -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "email" : { + "type" : "string" + } + }, + "required" : [ ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/gsheets" ] } }, @@ -7112,6 +12374,17 @@ }, "description" : "Must be a string like 2020-04 or 2222-11." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/logs" ] } }, @@ -7120,6 +12393,32 @@ "summary" : "POST /api/ee/metabot-tools/answer-sources", "description" : "Return top level meta information about available information sources.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7148,6 +12447,35 @@ "summary" : "POST /api/ee/metabot-tools/create-dashboard-subscription", "description" : "Create a dashboard subscription.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:output -> , :conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "output" : { + "type" : "string" + } + }, + "required" : [ "output", "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7176,6 +12504,32 @@ "summary" : "POST /api/ee/metabot-tools/field-values", "description" : "Return statistics and/or values for a given field of a given entity.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7204,6 +12558,32 @@ "summary" : "POST /api/ee/metabot-tools/filter-records", "description" : "Construct a query from a metric.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7232,6 +12612,32 @@ "summary" : "POST /api/ee/metabot-tools/find-metric", "description" : "Find a metric matching a description.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7266,6 +12672,32 @@ "summary" : "POST /api/ee/metabot-tools/find-outliers", "description" : "Find outliers in the values provided by a data source for a given column.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7294,6 +12726,41 @@ "summary" : "POST /api/ee/metabot-tools/generate-insights", "description" : "Generate insights.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:output -> , :reactions -> , :url -> }>, :conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "output" : { + "type" : "string" + }, + "reactions" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabot.reaction.redirect" + } + } + }, + "required" : [ "output", "reactions", "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7322,6 +12789,32 @@ "summary" : "POST /api/ee/metabot-tools/get-current-user", "description" : "Get information about user that started the conversation.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7339,6 +12832,32 @@ "summary" : "POST /api/ee/metabot-tools/get-dashboard-details", "description" : "Get information about a given dashboard.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7373,6 +12892,32 @@ "summary" : "POST /api/ee/metabot-tools/get-metric-details", "description" : "Get information about a given metric.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7401,6 +12946,32 @@ "summary" : "POST /api/ee/metabot-tools/get-query-details", "description" : "Get information about a given query.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7436,6 +13007,32 @@ "summary" : "POST /api/ee/metabot-tools/get-report-details", "description" : "Get information about a given report.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7464,6 +13061,32 @@ "summary" : "POST /api/ee/metabot-tools/get-table-details", "description" : "Get information about a given table or model.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7492,6 +13115,32 @@ "summary" : "POST /api/ee/metabot-tools/query-metric", "description" : "Construct a query from a metric.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7520,6 +13169,32 @@ "summary" : "POST /api/ee/metabot-tools/query-model", "description" : "Construct a query from a model.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:conversation_id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "conversation_id" : { + "description" : "value must be a valid UUID.", + "type" : "string", + "pattern" : "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + } + }, + "required" : [ "conversation_id" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7548,6 +13223,17 @@ "summary" : "GET /api/ee/metabot-v3/metabot/", "description" : "List configured metabot instances", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7564,6 +13250,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7580,6 +13277,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] }, "put" : { @@ -7594,6 +13302,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7655,6 +13374,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7694,6 +13424,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] }, "delete" : { @@ -7708,6 +13449,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7724,6 +13476,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7748,6 +13511,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/metabot-v3/metabot" ] } }, @@ -7756,6 +13530,17 @@ "summary" : "POST /api/ee/metabot-v3/v2/agent", "description" : "Send a chat message to the LLM via the AI Service.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7798,6 +13583,17 @@ "summary" : "POST /api/ee/metabot-v3/v2/agent-streaming", "description" : "Send a chat message to the LLM via the AI Proxy.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7835,48 +13631,39 @@ "tags" : [ "/api/ee/metabot-v3" ] } }, - "/api/ee/permission_debug/" : { - "get" : { - "summary" : "GET /api/ee/permission_debug/", - "description" : "This endpoint expects a `user_id`, a `model_id` to debug permissions against, and `action_type`.\n The type of model we are debugging against is inferred by the `action_type`.\n\n It will return:\n - `decision`: The overall permission decision (\"allow\", \"denied\", or \"limited\")\n - `model-type`: The type of model being checked (e.g., \"question\")\n - `model-id`: The ID of the model being checked\n - `segment`: A set of segmentation types applied (e.g., \"sandboxed\", \"impersonated\", \"routed\")\n - `message`: A sequence of strings explaining the decision\n - `data`: A map containing details about permissions (table or collection names to group names)\n - `suggestions`: A map of group IDs to group names that could provide access\n\n Example requests:\n - Check if user can read a card: `GET /api/ee/permission_debug?user_id=123&model_id=456&action_type=card/read`\n - Check if user can query a card: `GET /api/ee/permission_debug?user_id=123&model_id=456&action_type=card/query`\n - Check if user can download data: `GET /api/ee/permission_debug?user_id=123&model_id=456&action_type=card/download-data`\n\n Example responses:\n - Allowed access:\n ```json\n {\n \"decision\": \"allow\",\n \"model-type\": \"question\",\n \"model-id\": \"456\",\n \"segment\": [],\n \"message\": [\"User has permission to read this card\"],\n \"data\": {},\n \"suggestions\": {}\n }\n ```\n - Denied access with blocked table:\n ```json\n {\n \"decision\": \"denied\",\n \"model-type\": \"question\",\n \"model-id\": \"456\",\n \"segment\": [],\n \"message\": [\"User does not have permission to query this card\"],\n \"data\": {\"sample-db.PUBLIC.ORDERS\": [\"All Users\"]},\n \"suggestions\": {}\n }\n ```\n - Limited access:\n ```json\n {\n \"decision\": \"limited\",\n \"model-type\": \"question\",\n \"model-id\": \"456\",\n \"segment\": [],\n \"message\": [\"User has permission to download some data from this card\"],\n \"data\": {},\n \"suggestions\": {}\n }\n ```", - "parameters" : [ { - "in" : "query", - "name" : "user_id", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1 - } - }, { - "in" : "query", - "name" : "model_id", - "required" : true, - "schema" : { - "type" : "string" - } - }, { - "in" : "query", - "name" : "action_type", - "required" : true, - "schema" : { - "type" : "string", - "enum" : [ "card/read", "card/query", "card/download-data" ] - } - } ], - "tags" : [ "/api/ee/permission_debug" ] - } - }, "/api/ee/scim/api_key" : { "get" : { "summary" : "GET /api/ee/scim/api_key", "description" : "Fetch the SCIM API key if one exists. Does *not* return an unmasked key, since we don't have access\n to that after it is created.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim" ] }, "post" : { "summary" : "POST /api/ee/scim/api_key", "description" : "Create a new SCIM API key, or refresh one that already exists. When called for the first time,\n this is equivalent to enabling SCIM.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim" ] } }, @@ -7911,12 +13698,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] }, "post" : { "summary" : "POST /api/ee/scim/v2/Groups", "description" : "Create a single group, and populates it if necessary.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -7977,12 +13786,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] }, "put" : { "summary" : "PUT /api/ee/scim/v2/Groups/{id}", "description" : "Update a group.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8041,6 +13872,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] } }, @@ -8075,12 +13917,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] }, "post" : { "summary" : "POST /api/ee/scim/v2/Users", "description" : "Create a single user.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8184,12 +14048,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/scim/v2" ] }, "put" : { "summary" : "PUT /api/ee/scim/v2/Users/{id}", "description" : "Update a user.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8291,6 +14177,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8423,7 +14320,18 @@ "default" : false, "type" : "boolean" } - } ], + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/serialization" ] } }, @@ -8448,6 +14356,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -8532,6 +14451,17 @@ "enum" : [ "asc", "desc" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/stale" ] } }, @@ -8540,6 +14470,17 @@ "summary" : "GET /api/ee/upload-management/tables", "description" : "Get all `Tables` visible to the current user which were created by uploading a file.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/upload-management" ] } }, @@ -8565,6 +14506,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/ee/upload-management" ] } }, @@ -8573,6 +14525,17 @@ "summary" : "POST /api/eid-translation/translate", "description" : "Translate entity IDs to model IDs.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -8597,12 +14560,59 @@ "summary" : "PUT /api/email/", "description" : "Update multiple email Settings. You must be a superuser or have `setting` permission to do this.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { "schema" : { "type" : "object", - "properties" : { } + "properties" : { + "email-smtp-host" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-password" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-port" : { + "anyOf" : [ { + "type" : "integer" + }, { + "type" : "null" + } ] + }, + "email-smtp-security" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + }, + "email-smtp-username" : { + "anyOf" : [ { + "type" : "string" + }, { + "type" : "null" + } ] + } + } } } } @@ -8613,6 +14623,17 @@ "summary" : "DELETE /api/email/", "description" : "Clear all email related settings. You must be a superuser or have `setting` permission to do this.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/email" ] } }, @@ -8621,6 +14642,17 @@ "summary" : "POST /api/email/test", "description" : "Send a test email using the SMTP Settings. You must be a superuser or have `setting` permission to do this.\n Returns `{:ok true}` if we were able to send the message successfully, otherwise a standard 400 error response.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/email" ] } }, @@ -8636,6 +14668,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8665,6 +14708,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8673,6 +14727,17 @@ "summary" : "GET /api/embed/card/{token}/params/{param-key}/search/{prefix}", "description" : "Embedded version of chain filter search endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8695,6 +14760,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8710,6 +14786,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8748,6 +14835,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8763,6 +14861,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8796,6 +14905,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8845,6 +14965,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8853,6 +14984,17 @@ "summary" : "GET /api/embed/dashboard/{token}/params/{param-key}/remapping", "description" : "Embedded version of the remapped dashboard param value endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8861,6 +15003,17 @@ "summary" : "GET /api/embed/dashboard/{token}/params/{param-key}/search/{prefix}", "description" : "Embedded version of chain filter search endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8883,6 +15036,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8898,6 +15062,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8931,6 +15106,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -8992,6 +15178,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -9071,6 +15268,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/embed" ] } }, @@ -9096,6 +15304,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] }, "put" : { @@ -9111,6 +15330,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9188,6 +15418,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9228,6 +15469,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9245,6 +15497,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9262,6 +15525,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9296,6 +15570,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9313,6 +15598,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9347,6 +15643,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9364,6 +15671,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] } }, @@ -9381,6 +15699,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/field" ] }, "post" : { @@ -9396,6 +15725,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9439,6 +15779,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/geojson" ] } }, @@ -9455,6 +15806,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/geojson" ] } }, @@ -9463,6 +15825,17 @@ "summary" : "PUT /api/google/settings", "description" : "Update Google Sign-In related settings. You must be a superuser to do this.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9491,6 +15864,17 @@ "summary" : "PUT /api/ldap/settings", "description" : "Update LDAP related settings. You must be a superuser to do this.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9523,6 +15907,17 @@ "summary" : "POST /api/logger/adjustment", "description" : "Temporarily adjust the log levels.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9548,6 +15943,17 @@ "summary" : "DELETE /api/logger/adjustment", "description" : "Undo any log level adjustments.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/logger" ] } }, @@ -9556,6 +15962,17 @@ "summary" : "GET /api/logger/logs", "description" : "Logs.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/logger" ] } }, @@ -9564,6 +15981,51 @@ "summary" : "GET /api/logger/presets", "description" : "Get all known presets.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "sequence of map where {:id -> , :display_name -> , :loggers -> , :level -> }>}", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "display_name" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "loggers" : { + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "level" : { + "$ref" : "#/components/schemas/metabase.logger.api.log-level" + }, + "name" : { + "type" : "string" + } + }, + "required" : [ "name", "level" ] + } + } + }, + "required" : [ "id", "display_name", "loggers" ] + } + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/logger" ] } }, @@ -9572,6 +16034,17 @@ "summary" : "GET /api/login-history/current", "description" : "Fetch recent logins for the current user.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/login-history" ] } }, @@ -9580,6 +16053,17 @@ "summary" : "POST /api/model-index/", "description" : "Create ModelIndex.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9614,6 +16098,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/model-index" ] } }, @@ -9631,6 +16126,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/model-index" ] }, "delete" : { @@ -9646,6 +16152,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/model-index" ] } }, @@ -9654,6 +16171,17 @@ "summary" : "POST /api/moderation-review/", "description" : "Create a new `ModerationReview`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9707,12 +16235,34 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/mt/gtap" ] }, "post" : { "summary" : "POST /api/mt/gtap/", "description" : "Create a new GTAP.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9749,6 +16299,17 @@ "summary" : "POST /api/mt/gtap/validate", "description" : "Validate a sandbox which may not have yet been saved. This runs the same validation that is performed when the\n sandbox is saved, but doesn't actually save the sandbox.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9788,6 +16349,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/mt/gtap" ] }, "put" : { @@ -9803,6 +16375,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9835,6 +16418,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/mt/gtap" ] } }, @@ -9843,6 +16437,17 @@ "summary" : "GET /api/mt/user/attributes", "description" : "Fetch a list of possible keys for User `login_attributes`. This just looks at keys that have already been set for\n existing Users and returns those. ", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/mt/user" ] } }, @@ -9860,6 +16465,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9892,12 +16508,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/native-query-snippet" ] }, "post" : { "summary" : "POST /api/native-query-snippet/", "description" : "Create a new `NativeQuerySnippet`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -9941,6 +16579,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/native-query-snippet" ] }, "put" : { @@ -9956,6 +16605,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10043,12 +16703,34 @@ "enum" : [ "notification/dashboard", "notification/system-event", "notification/testing", "notification/card" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/notification" ] }, "post" : { "summary" : "POST /api/notification/", "description" : "Create a new notification, return the created notification.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10066,6 +16748,17 @@ "summary" : "POST /api/notification/send", "description" : "Send an unsaved notification.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10083,6 +16776,17 @@ "summary" : "POST /api/notification/unsubscribe/", "description" : "Allow non-users to unsubscribe from notifications, with the hash given through email.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10114,6 +16818,17 @@ "summary" : "POST /api/notification/unsubscribe/undo", "description" : "Allow non-users to undo an unsubscribe from notifications, with the hash given through email.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10154,6 +16869,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/notification" ] }, "put" : { @@ -10169,6 +16895,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10195,6 +16932,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10231,6 +16979,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/notification" ] } }, @@ -10239,6 +16998,17 @@ "summary" : "POST /api/notify/db/attached_datawarehouse", "description" : "Sync the attached datawarehouse. Can provide in the body:\n - table_name and schema_name: both strings. Will look for an existing table and sync it, otherwise will try to find a\n new table with that name and sync it. If it cannot find a table it will throw an error. If table_name is empty or\n blank, will sync the entire database.\n - synchronous?: is a boolean value to indicate if this should block on the result.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10279,6 +17049,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10320,6 +17101,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10348,6 +17140,17 @@ "summary" : "GET /api/permissions/graph", "description" : "Fetch a graph of all Permissions.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] }, "put" : { @@ -10370,6 +17173,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10397,6 +17211,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10414,6 +17239,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10422,12 +17258,34 @@ "summary" : "GET /api/permissions/group", "description" : "Fetch all `PermissionsGroups`, including a count of the number of `:members` in that group.\n This API requires superuser or group manager of more than one group.\n Group manager is only available if `advanced-permissions` is enabled and returns only groups that user\n is manager of.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] }, "post" : { "summary" : "POST /api/permissions/group", "description" : "Create a new `PermissionsGroup`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10461,6 +17319,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10492,6 +17361,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10509,6 +17389,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10517,12 +17408,34 @@ "summary" : "GET /api/permissions/membership", "description" : "Fetch a map describing the group memberships of various users.\n This map's format is:\n\n { [{:membership_id \n :group_id \n :is_group_manager boolean}]}", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] }, "post" : { "summary" : "POST /api/permissions/membership", "description" : "Add a `User` to a `PermissionsGroup`. Returns updated list of members belonging to the group.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10566,6 +17479,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10583,6 +17507,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10613,6 +17548,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/permissions" ] } }, @@ -10621,6 +17567,17 @@ "summary" : "GET /api/persist/", "description" : "List the entries of [[PersistedInfo]] in order to show a status page.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10638,6 +17595,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10655,6 +17623,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10672,6 +17651,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10689,6 +17679,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10706,6 +17707,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10723,6 +17735,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10731,6 +17754,17 @@ "summary" : "POST /api/persist/disable", "description" : "Disable global setting to allow databases to persist models. This will remove all tasks to refresh tables, remove\n that option from databases which might have it enabled, and delete all cached tables.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10739,6 +17773,17 @@ "summary" : "POST /api/persist/enable", "description" : "Enable global setting to allow databases to persist models.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10747,6 +17792,17 @@ "summary" : "POST /api/persist/set-refresh-schedule", "description" : "Set the cron schedule to refresh persisted models.\n Shape should be JSON like {cron: \"0 30 1/8 * * ? *\"}.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -10781,6 +17837,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/persist" ] } }, @@ -10789,6 +17856,17 @@ "summary" : "GET /api/premium-features/token/status", "description" : "Fetch info about the current Premium-Features premium features token including whether it is `valid`, a `trial` token, its\n `features`, when it is `valid-thru`, and the `status` of the account.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/premium-features" ] } }, @@ -10805,6 +17883,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10834,6 +17923,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10850,6 +17950,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10866,6 +17977,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10900,6 +18022,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10908,6 +18041,17 @@ "summary" : "GET /api/preview_embed/dashboard/{token}/params/{param-key}/remapping", "description" : "Embedded version of the remapped dashboard param value endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10916,6 +18060,17 @@ "summary" : "GET /api/preview_embed/dashboard/{token}/params/{param-key}/values", "description" : "Embedded version of chain filter values endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10932,6 +18087,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10966,6 +18132,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/preview_embed" ] } }, @@ -10974,6 +18151,17 @@ "summary" : "POST /api/product-feedback/", "description" : "Endpoint to provide feedback from the product", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11015,6 +18203,17 @@ }, "description" : "value must be a valid UUID." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11032,6 +18231,17 @@ }, "description" : "value must be a valid UUID." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11064,6 +18274,17 @@ }, "description" : "value must be a valid UUID." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11094,6 +18315,17 @@ "required" : true, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11127,6 +18359,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11152,6 +18395,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11177,6 +18431,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11225,6 +18490,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11242,6 +18518,17 @@ }, "description" : "value must be a valid UUID." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11285,6 +18572,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11327,6 +18625,17 @@ "$ref" : "#/components/schemas/metabase.query-processor.schema.export-format" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11388,6 +18697,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] }, "post" : { @@ -11412,6 +18732,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11457,6 +18788,17 @@ "required" : true, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11490,6 +18832,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11515,6 +18868,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11558,6 +18922,17 @@ "minimum" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11583,6 +18958,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11626,6 +19012,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11689,6 +19086,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11770,6 +19178,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/public" ] } }, @@ -11803,12 +19222,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] }, "post" : { "summary" : "POST /api/pulse/", "description" : "Create a new `Pulse`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11861,6 +19302,17 @@ "summary" : "GET /api/pulse/form_input", "description" : "Provides relevant configuration information and user choices for creating/updating Pulses.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11878,6 +19330,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11895,6 +19358,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11912,6 +19386,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11929,6 +19414,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -11937,6 +19433,17 @@ "summary" : "POST /api/pulse/test", "description" : "Test send an unsaved pulse.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -11982,6 +19489,17 @@ "summary" : "POST /api/pulse/unsubscribe/", "description" : "Allow non-users to unsubscribe from pulses/subscriptions, with the hash given through email.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12013,6 +19531,17 @@ "summary" : "POST /api/pulse/unsubscribe/undo", "description" : "Allow non-users to undo an unsubscribe from pulses/subscriptions, with the hash given through email.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12053,6 +19582,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] }, "put" : { @@ -12068,6 +19608,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12124,6 +19675,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/pulse" ] } }, @@ -12149,6 +19711,17 @@ "enum" : [ "card", "dashboard", "segment" ] } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/revision" ] } }, @@ -12157,6 +19730,17 @@ "summary" : "POST /api/revision/revert", "description" : "Revert an object to a prior revision.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12208,13 +19792,24 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/revision" ] } }, "/api/search/" : { "get" : { "summary" : "GET /api/search/", - "description" : "Search for items in Metabase.\n For the list of supported models, check [[metabase.search.config/all-models]].\n\n Filters:\n - `archived`: set to true to search archived items only, default is false\n - `table_db_id`: search for tables, cards, and models of a certain DB\n - `models`: only search for items of specific models. If not provided, search for all models\n - `filters_items_in_personal_collection`: only search for items in personal collections\n - `created_at`: search for items created at a specific timestamp\n - `created_by`: search for items created by a specific user\n - `last_edited_at`: search for items last edited at a specific timestamp\n - `last_edited_by`: search for items last edited by a specific user\n - `search_native_query`: set to true to search the content of native queries\n - `verified`: set to true to search for verified items only (requires Content Management or Official Collections premium feature)\n - `ids`: search for items with those ids, works iff single value passed to `models`\n\n Note that not all item types support all filters, and the results will include only models that support the provided filters. For example:\n - The `created-by` filter supports dashboards, models, actions, and cards.\n - The `verified` filter supports models and cards.\n\n A search query that has both filters applied will only return models and cards.", + "description" : "Search for items in Metabase.\n For the list of supported models, check [[metabase.search.config/all-models]].\n\n Filters:\n - `archived`: set to true to search archived items only, default is false\n - `table_db_id`: search for tables, cards, and models of a certain DB\n - `models`: only search for items of specific models. If not provided, search for all models\n - `filters_items_in_personal_collection`: only search for items in personal collections\n - `created_at`: search for items created at a specific timestamp\n - `created_by`: search for items created by a specific user\n - `last_edited_at`: search for items last edited at a specific timestamp\n - `last_edited_by`: search for items last edited by a specific user\n - `search_native_query`: set to true to search the content of native queries\n - `verified`: set to true to search for verified items only (requires Content Management or Official Collections premium feature)\n - `ids`: search for items with those ids, works iff single value passed to `models`\n - `display_type`: search for cards/models with specific display types\n - `has_temporal_dimensions`: set to true to search for cards with temporal dimensions only\n\n Note that not all item types support all filters, and the results will include only models that support the provided filters. For example:\n - The `created-by` filter supports dashboards, models, actions, and cards.\n - The `verified` filter supports models and cards.\n\n A search query that has both filters applied will only return models and cards.", "parameters" : [ { "in" : "query", "name" : "q", @@ -12286,6 +19881,24 @@ "minimum" : 1 } } + }, { + "in" : "query", + "name" : "display_type", + "required" : false, + "schema" : { + "type" : "array", + "items" : { + "type" : "string", + "minLength" : 1 + } + } + }, { + "in" : "query", + "name" : "has_temporal_dimensions", + "required" : false, + "schema" : { + "type" : "boolean" + } }, { "in" : "query", "name" : "last_edited_at", @@ -12371,6 +19984,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] } }, @@ -12379,6 +20003,17 @@ "summary" : "POST /api/search/force-reindex", "description" : "This will trigger an immediate reindexing, if we are using search index.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] } }, @@ -12387,6 +20022,17 @@ "summary" : "POST /api/search/re-init", "description" : "This will blow away any search indexes, re-create, and re-populate them.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] } }, @@ -12408,6 +20054,17 @@ "required" : false, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] }, "put" : { @@ -12427,6 +20084,17 @@ "required" : false, "schema" : { } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/search" ] } }, @@ -12435,6 +20103,17 @@ "summary" : "POST /api/segment/", "description" : "Create a new `Segment`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12470,6 +20149,17 @@ "summary" : "GET /api/segment/", "description" : "Fetch *all* `Segments`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/segment" ] } }, @@ -12487,6 +20177,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/segment" ] }, "put" : { @@ -12502,6 +20203,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12564,6 +20276,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/segment" ] } }, @@ -12581,6 +20304,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/segment" ] } }, @@ -12589,6 +20323,17 @@ "summary" : "POST /api/session/", "description" : "Login.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12615,6 +20360,17 @@ "summary" : "DELETE /api/session/", "description" : "Logout.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/session" ] } }, @@ -12623,6 +20379,17 @@ "summary" : "POST /api/session/forgot_password", "description" : "Send a reset email when user has forgotten their password.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12647,6 +20414,17 @@ "summary" : "POST /api/session/google_auth", "description" : "Login with Google Auth.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12671,6 +20449,17 @@ "summary" : "POST /api/session/password-check", "description" : "Endpoint that checks if the supplied password meets the currently configured password complexity rules.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12703,6 +20492,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/session" ] } }, @@ -12711,6 +20511,17 @@ "summary" : "GET /api/session/properties", "description" : "Get all properties and their values. These are the specific `Settings` that are readable by the current user, or are\n public if no user is logged in.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/session" ] } }, @@ -12719,6 +20530,17 @@ "summary" : "POST /api/session/reset_password", "description" : "Reset password with a reset token.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12747,12 +20569,34 @@ "summary" : "GET /api/setting/", "description" : "Get all `Settings` and their values. You must be a superuser or have `setting` permission to do this.\n For non-superusers, a list of visible settings and values can be retrieved using the /api/session/properties endpoint.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/setting" ] }, "put" : { "summary" : "PUT /api/setting/", "description" : "Update multiple `Settings` values. If called by a non-superuser, only user-local settings can be updated.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12778,6 +20622,17 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/setting" ] }, "put" : { @@ -12791,6 +20646,30 @@ "type" : "string" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "value" : { } + }, + "required" : [ "value" ] + } + } + } + }, "tags" : [ "/api/setting" ] } }, @@ -12799,6 +20678,17 @@ "summary" : "POST /api/setup/", "description" : "Special endpoint for creating the first user during setup. This endpoint both creates the user AND logs them in and\n returns a session ID. This endpoint can also be used to add a database, create and invite a second admin, and/or\n set specific settings from the setup flow.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12878,6 +20768,17 @@ "summary" : "GET /api/setup/user_defaults", "description" : "Returns object containing default user details for initial setup, if configured,\n and if the provided token value matches the token in the configuration value.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/setup" ] } }, @@ -12886,6 +20787,17 @@ "summary" : "POST /api/slack/bug-report", "description" : "Send diagnostic information to the configured Slack channels.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12909,6 +20821,17 @@ "summary" : "GET /api/slack/manifest", "description" : "Returns the YAML manifest file that should be used to bootstrap new Slack apps", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/slack" ] } }, @@ -12917,6 +20840,17 @@ "summary" : "PUT /api/slack/settings", "description" : "Update Slack related settings. You must be a superuser to do this. Also updates the slack-cache.\n There are 3 cases where we alter the slack channel/user cache:\n 1. falsy token -> clear\n 2. invalid token -> clear\n 3. truthy, valid token -> refresh ", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -12943,12 +20877,34 @@ "summary" : "GET /api/table/", "description" : "Get all `Tables`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] }, "put" : { "summary" : "PUT /api/table/", "description" : "Update all `Table` in `ids`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13009,6 +20965,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13026,6 +20993,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13050,6 +21028,17 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] }, "put" : { @@ -13065,6 +21054,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13120,6 +21120,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -13159,6 +21170,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13176,6 +21198,30 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "map where {:success -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "success" : { + "const" : true + } + }, + "required" : [ "success" ] + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13207,6 +21253,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13248,6 +21305,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13265,6 +21333,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/table" ] } }, @@ -13282,6 +21361,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -13299,104 +21389,413 @@ "required" : [ "filename", "tempfile" ] } }, - "required" : [ "file" ] + "required" : [ "file" ] + } + } + } + }, + "tags" : [ "/api/table" ] + } + }, + "/api/table/{id}/rescan_values" : { + "post" : { + "summary" : "POST /api/table/{id}/rescan_values", + "description" : "Manually trigger an update for the FieldValues for the Fields belonging to this Table. Only applies to Fields that\n are eligible for FieldValues.", + "parameters" : [ { + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/table" ] + } + }, + "/api/table/{id}/sync_schema" : { + "post" : { + "summary" : "POST /api/table/{id}/sync_schema", + "description" : "Trigger a manual update of the schema metadata for this `Table`.", + "parameters" : [ { + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/table" ] + } + }, + "/api/table/{table-id}/data" : { + "get" : { + "summary" : "GET /api/table/{table-id}/data", + "description" : "Get the data for the given table", + "parameters" : [ { + "in" : "path", + "name" : "table-id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/table" ] + } + }, + "/api/task/" : { + "get" : { + "summary" : "GET /api/task/", + "description" : "Fetch a list of recent tasks stored as Task History", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/task" ] + } + }, + "/api/task/info" : { + "get" : { + "summary" : "GET /api/task/info", + "description" : "Return raw data about all scheduled tasks (i.e., Quartz Jobs and Triggers).", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/task" ] + } + }, + "/api/task/unique-tasks" : { + "get" : { + "summary" : "GET /api/task/unique-tasks", + "description" : "Returns possibly empty vector of unique task names in alphabetical order. It is expected that number of unique\n tasks is small, hence no need for pagination. If that changes this endpoint and function that powers it should\n reflect that.", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/task" ] + } + }, + "/api/task/{id}" : { + "get" : { + "summary" : "GET /api/task/{id}", + "description" : "Get `TaskHistory` entry with ID.", + "parameters" : [ { + "in" : "path", + "name" : "id", + "required" : true, + "schema" : { + "type" : "integer", + "minimum" : 1 + }, + "description" : "value must be an integer greater than zero." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/task" ] + } + }, + "/api/testing/echo" : { + "post" : { + "summary" : "POST /api/testing/echo", + "description" : "Simple echo hander. Fails when you POST with `?fail=true`.", + "parameters" : [ { + "in" : "query", + "name" : "fail", + "required" : true, + "schema" : { + "default" : false, + "type" : "boolean" + } + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] + }, + "get" : { + "summary" : "GET /api/testing/echo", + "description" : "Simple echo hander. Fails when you GET with `?fail=true`.", + "parameters" : [ { + "in" : "query", + "name" : "fail", + "required" : true, + "schema" : { + "default" : false, + "type" : "boolean" + } + }, { + "in" : "query", + "name" : "body", + "required" : true, + "schema" : { + "type" : "string" + }, + "description" : "value must be a valid JSON string." + } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] + } + }, + "/api/testing/mark-stale" : { + "post" : { + "summary" : "POST /api/testing/mark-stale", + "description" : "Mark the card or dashboard as stale", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "date-str" : { + "type" : "string" + }, + "id" : { + "description" : "value must be an integer greater than zero.", + "type" : "integer", + "minimum" : 1 + }, + "model" : { + "type" : "string" + } + }, + "required" : [ "id", "model" ] } } } }, - "tags" : [ "/api/table" ] + "tags" : [ "/api/testing" ] } }, - "/api/table/{id}/rescan_values" : { + "/api/testing/refresh-caches" : { "post" : { - "summary" : "POST /api/table/{id}/rescan_values", - "description" : "Manually trigger an update for the FieldValues for the Fields belonging to this Table. Only applies to Fields that\n are eligible for FieldValues.", - "parameters" : [ { - "in" : "path", - "name" : "id", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1 + "summary" : "POST /api/testing/refresh-caches", + "description" : "Manually triggers the cache refresh task, if Enterprise code is available.", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" }, - "description" : "value must be an integer greater than zero." - } ], - "tags" : [ "/api/table" ] + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] } }, - "/api/table/{id}/sync_schema" : { + "/api/testing/restore/{name}" : { "post" : { - "summary" : "POST /api/table/{id}/sync_schema", - "description" : "Trigger a manual update of the schema metadata for this `Table`.", + "summary" : "POST /api/testing/restore/{name}", + "description" : "Restore a database snapshot for testing purposes.", "parameters" : [ { "in" : "path", - "name" : "id", + "name" : "name", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "type" : "string", + "minLength" : 1 + } } ], - "tags" : [ "/api/table" ] - } - }, - "/api/table/{table-id}/data" : { - "get" : { - "summary" : "GET /api/table/{table-id}/data", - "description" : "Get the data for the given table", - "parameters" : [ { - "in" : "path", - "name" : "table-id", - "required" : true, - "schema" : { - "type" : "integer", - "minimum" : 1 + "responses" : { + "2XX" : { + "description" : "Successful response" }, - "description" : "value must be an integer greater than zero." - } ], - "tags" : [ "/api/table" ] - } - }, - "/api/task/" : { - "get" : { - "summary" : "GET /api/task/", - "description" : "Fetch a list of recent tasks stored as Task History", - "parameters" : [ ], - "tags" : [ "/api/task" ] - } - }, - "/api/task/info" : { - "get" : { - "summary" : "GET /api/task/info", - "description" : "Return raw data about all scheduled tasks (i.e., Quartz Jobs and Triggers).", - "parameters" : [ ], - "tags" : [ "/api/task" ] + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] } }, - "/api/task/unique-tasks" : { - "get" : { - "summary" : "GET /api/task/unique-tasks", - "description" : "Returns possibly empty vector of unique task names in alphabetical order. It is expected that number of unique\n tasks is small, hence no need for pagination. If that changes this endpoint and function that powers it should\n reflect that.", + "/api/testing/set-time" : { + "post" : { + "summary" : "POST /api/testing/set-time", + "description" : "Make java-time see world at exact time.", "parameters" : [ ], - "tags" : [ "/api/task" ] + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object", + "properties" : { + "add-ms" : { + "description" : "value must be an integer.", + "type" : "integer" + }, + "time" : { + "description" : "value must be a valid date string", + "type" : "string" + } + } + } + } + } + }, + "tags" : [ "/api/testing" ] } }, - "/api/task/{id}" : { - "get" : { - "summary" : "GET /api/task/{id}", - "description" : "Get `TaskHistory` entry with ID.", + "/api/testing/snapshot/{name}" : { + "post" : { + "summary" : "POST /api/testing/snapshot/{name}", + "description" : "Snapshot the database for testing purposes.", "parameters" : [ { "in" : "path", - "name" : "id", + "name" : "name", "required" : true, "schema" : { - "type" : "integer", - "minimum" : 1 - }, - "description" : "value must be an integer greater than zero." + "type" : "string", + "minLength" : 1 + } } ], - "tags" : [ "/api/task" ] + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] + } + }, + "/api/testing/stats" : { + "post" : { + "summary" : "POST /api/testing/stats", + "description" : "Triggers a send of instance usage stats", + "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, + "tags" : [ "/api/testing" ] } }, "/api/tiles/{card-id}/{zoom}/{x}/{y}/{lat-field}/{lon-field}" : { @@ -13459,6 +21858,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/tiles" ] } }, @@ -13540,6 +21950,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/tiles" ] } }, @@ -13556,6 +21977,17 @@ }, "description" : "value must be a valid JSON string." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/tiles" ] } }, @@ -13564,6 +21996,17 @@ "summary" : "POST /api/timeline-event/", "description" : "Create a new [[TimelineEvent]].", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13631,6 +22074,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline-event" ] }, "put" : { @@ -13646,6 +22100,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13701,6 +22166,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline-event" ] } }, @@ -13709,6 +22185,24 @@ "summary" : "POST /api/timeline/", "description" : "Create a new [[Timeline]].", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "map where {:id -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.timeline.api.timeline.Timeline" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13764,6 +22258,27 @@ "type" : "boolean" } } ], + "responses" : { + "2XX" : { + "description" : "sequence of map where {:id -> }", + "content" : { + "application/json" : { + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/metabase.timeline.api.timeline.Timeline" + } + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] } }, @@ -13787,6 +22302,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] } }, @@ -13819,6 +22345,17 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] } }, @@ -13867,6 +22404,24 @@ }, "description" : "value must be a valid date string" } ], + "responses" : { + "2XX" : { + "description" : "map where {:id -> }", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/metabase.timeline.api.timeline.Timeline" + } + } + } + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] }, "put" : { @@ -13882,6 +22437,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -13930,6 +22496,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/timeline" ] } }, @@ -13938,6 +22515,17 @@ "summary" : "POST /api/upload/csv", "description" : "Create a table and model populated with the values from the attached CSV. Returns the model ID if successful.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "multipart/form-data" : { @@ -13980,6 +22568,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user-key-value" ] } }, @@ -14004,6 +22603,17 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -14041,12 +22651,34 @@ "minLength" : 1 } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user-key-value" ] }, "delete" : { "summary" : "DELETE /api/user-key-value/namespace/{namespace}/key/{key}", "description" : "Deletes a KV-pair for the user", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user-key-value" ] } }, @@ -14086,12 +22718,34 @@ "default" : false } } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] }, "post" : { "summary" : "POST /api/user/", "description" : "Create a new `User`, return a 400 if the email address is already taken", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -14135,6 +22789,17 @@ "summary" : "GET /api/user/current", "description" : "Fetch the current `User`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14143,6 +22808,17 @@ "summary" : "GET /api/user/recipients", "description" : "Fetch a list of `Users`. Returns only active users. Meant for non-admins unlike GET /api/user.\n\n - If user-visibility is :all or the user is an admin, include all users.\n - If user-visibility is :group, include only users in the same group (excluding the all users group).\n - If user-visibility is :none or the user is sandboxed, include only themselves.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14160,6 +22836,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] }, "put" : { @@ -14175,6 +22862,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -14235,6 +22933,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14252,6 +22961,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14269,6 +22989,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "requestBody" : { "content" : { "application/json" : { @@ -14302,6 +23033,17 @@ }, "description" : "value must be an integer greater than zero." } ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/user" ] } }, @@ -14310,6 +23052,17 @@ "summary" : "GET /api/util/random_token", "description" : "Return a cryptographically secure random 32-byte token, encoded as a hexadecimal string.\n Intended for use when creating a value for `embedding-secret-key`.", "parameters" : [ ], + "responses" : { + "2XX" : { + "description" : "Successful response" + }, + "4XX" : { + "description" : "Client error response" + }, + "5XX" : { + "description" : "Server error response" + } + }, "tags" : [ "/api/util" ] } } diff --git a/_site/docs/master/configuring-metabase/appearance.html b/_site/docs/master/configuring-metabase/appearance.html index e7c10b1a90..c60076dbc5 100644 --- a/_site/docs/master/configuring-metabase/appearance.html +++ b/_site/docs/master/configuring-metabase/appearance.html @@ -4895,7 +4895,7 @@

Further reading

diff --git a/_site/docs/master/configuring-metabase/setting-up-metabase.html b/_site/docs/master/configuring-metabase/setting-up-metabase.html index c29a929fe0..e77bb3d6d2 100644 --- a/_site/docs/master/configuring-metabase/setting-up-metabase.html +++ b/_site/docs/master/configuring-metabase/setting-up-metabase.html @@ -4730,7 +4730,7 @@

What will you use Metabase for?

Gathering your database info

-

At this point you’ll need to gather some information about the database you want to use with Metabase. We won’t be able to connect to your database without it, but you’d like to deal with all of this later, that’s okay: just click I’ll add my data later. Metabase comes with a Sample Database that you can play around with to get a feel for how Metabase works.

+

At this point you’ll need to gather some information about the database you want to use with Metabase. We won’t be able to connect to your database without it, but you’d like to deal with all of this later, that’s okay: just click I’ll add my data later. Metabase comes with a Sample Database that you can play around with to get a feel for how Metabase works.

If you’re ready to connect, here’s what you’ll need:

diff --git a/_site/docs/master/databases/connecting.html b/_site/docs/master/databases/connecting.html index c49c20b3a8..4def537c6d 100644 --- a/_site/docs/master/databases/connecting.html +++ b/_site/docs/master/databases/connecting.html @@ -4761,7 +4761,7 @@

Deleting databases

Restoring the Sample Database

-

If you’ve deleted the Metabase Sample Database, go to Admin settings > Databases and click Bring the Sample Database back.

+

If you’ve deleted the Metabase Sample Database, go to Admin settings > Databases and click Bring the Sample Database back.

Troubleshooting

diff --git a/_site/docs/master/embedding/interactive-embedding.html b/_site/docs/master/embedding/interactive-embedding.html index b4015cd560..51ae06a353 100644 --- a/_site/docs/master/embedding/interactive-embedding.html +++ b/_site/docs/master/embedding/interactive-embedding.html @@ -4738,7 +4738,7 @@

Interactive embedding

Interactive embedding is what you want if you want to offer multi-tenant, self-service analytics.

-

Interactive embedding is the only type of embedding that integrates with your permissions and SSO to give people the right level of access to query and drill-down into your data.

+

Interactive embedding is the only type of embedding that integrates with your permissions and SSO to give people the right level of access to query and drill-down into your data.

Interactive embedding demo

diff --git a/_site/docs/master/embedding/introduction.html b/_site/docs/master/embedding/introduction.html index e6e4796adc..d45653cf32 100644 --- a/_site/docs/master/embedding/introduction.html +++ b/_site/docs/master/embedding/introduction.html @@ -4802,7 +4802,7 @@

Comparison of embedding types

❌ - Self-serve via query builder + Self-serve via query builder ✅ ✅ ❌ diff --git a/_site/docs/master/embedding/sdk/upgrade.html b/_site/docs/master/embedding/sdk/upgrade.html new file mode 100644 index 0000000000..af4dbdaf2b --- /dev/null +++ b/_site/docs/master/embedding/sdk/upgrade.html @@ -0,0 +1,5171 @@ + + + + + + + + + + + + + + + + + + +Upgrading Metabase and the Embedded analytics SDK | Metabase Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+
+ + + +
+
+
+ +
+ + + + + + + + + +
+ + + +
+ + +
+ +
+ +
+ + + +
+ + + master + + + + + + + + +
+ + + + + What’s new + + + + + +
+ + + + +
+
+ + +
+ + +
+ + +
+ These are the docs for the Metabase master branch. Some features documented here may not yet be available in the latest release. + Check out the docs for the latest version, Metabase v0.55. +
+ + +
+ + +

Upgrading Metabase and the Embedded analytics SDK

+ +

Here’s a basic overview of the steps you’ll want to take when upgrading your SDK.

+ +

1. Read the release post and changelog for both Metabase and the Embedded analytics SDK

+ + + +

Check for any relevant changes, especially breaking changes that require you to update your application’s code. If there are breaking changes, we’ll have docs that’ll walk you through what changes you’ll need to make and why.

+ +

2. Test the upgrade

+ +

When upgrading to a new major version, you’ll want to upgrade both Metabase and the SDK version in parallel, as having Metabase and the SDK major versions out of sync can cause errors.

+ +

Spin up the new version of Metabase for testing

+ +

You can do this locally or in a dev instance. If your testing setup involves a lot of test user accounts, getting a development instance could be more cost-effective.

+ +

See upgrading Metabase.

+ +

Upgrade the SDK with npm or yarn

+ +

You’ll want to test the changes locally first, as there may be breaking changes that require you to upgrade your application code.

+ +

Check out a new branch in your application and install the next stable version, either with npm or yarn:

+ +

Via npm:

+ +
npm install @metabase/embedding-sdk-react@{next-major-version-number}-stable
+
+ +

For example, if you were upgrading to version 55 of the SDK:

+ +
npm install @metabase/embedding-sdk-react@55-stable
+
+ +

If you’re using yarn:

+ +
yarn add @metabase/embedding-sdk-react@{next-major-version-number}-stable
+
+ +

See more on SDK versions.

+ +

If there are breaking changes, make the necessary changes to your application code

+ +

Breaking changes are rare, but if you do need to make changes, we’ll mention it in the release notes for the new major version and have docs that walk you through the changes.

+ +

Update or add tests for any application code changes that you make.

+ +

Deploy to your staging environment

+ +

Before deploying your app to your staging environment, make sure you’ve tested your app locally (manually, as well as running any automated tests).

+ +

If all goes well with your local tests, deploy to your staging environment. Check that the Metabase embeds in your staging app are still working as expected, and perform any other testing you normally do with your application with respect to your embedded analytics.

+ +

3. Deploy to production

+ +

If everything is working in staging, you’re ready to deploy to production.

+ +

Be sure to deploy your application changes and upgrade your Metabase in parallel so that the SDK version and the Metabase version stay in sync.

+ +

If your instance is on Metabase Cloud, you’ll need to request an upgrade

+ +

If you’re on Metabase Cloud, your instance version is pinned, so you’ll need to request an upgrade by contacting support.

+ +

We’ll coordinate with you so that your instance is upgraded when you deploy the changes to your application.

+ + +
+
+ +

+ Read docs for other versions of Metabase. +

+ +
+
+ +
+ +
+
+
Was this helpful?
+ + +
+ +
+

+ +
+ + + +
+
+ +
+
Thanks for your feedback!
+
+ + + + Want to improve these docs? Propose a change. + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/docs/master/embedding/sdk/version.html b/_site/docs/master/embedding/sdk/version.html index a54e43a803..61c7f558a4 100644 --- a/_site/docs/master/embedding/sdk/version.html +++ b/_site/docs/master/embedding/sdk/version.html @@ -4718,39 +4718,36 @@

Embedded analytics SDK - versions

The SDK stable version tracks with the Metabase version.

-

So, for example, if you’re on Metabase 53 (0.53.x, 1.53.x), any version 0.53.x of the @metabase/embedding-sdk-react npm package will be compatible.

+

So, for example, if you’re on Metabase 55 (0.55.x, 1.55.x), any version 0.55.x of the @metabase/embedding-sdk-react npm package will be compatible.

-

To simplify things, we publish dist-tags for each stable Metabase version. For example, to install the latest version of the SDK compatible with Metabase 53, run:

+

To simplify things, we publish dist-tags for each stable Metabase version. For example, to install the latest version of the SDK compatible with Metabase 55, run:

-
npm install @metabase/embedding-sdk-react@53-stable
+
npm install @metabase/embedding-sdk-react@55-stable
 

To grab the latest version of the SDK that works with Metabase nightly builds, use the canary dist-tag.

Minimum SDK version

-

52 is the minimum version supported for the Embedded analytics SDK.

+

Version 52 is the minimum version supported for the Embedded analytics SDK.

-

Version pinning when using the SDK with Metabase Cloud

+

Instances on Metabase Cloud will be pinned to a specific version

-

To pin your version of Metabase, go to Admin settings > Settings > Embedding. Go to the Embedded analytics SDK card and scroll to Version pinning and click Request version pinning.

+

By default, if you’re running on Metabase Cloud and using the Embedded analytics SDK, we’ll pin your version to avoid breaking changes.

-

Version pinning requirements

+

Normally, Metabase Cloud upgrades your Metabase as new versions roll out so you don’t have to deal with upgrades. But if you’re using the SDK with Metabase Cloud, you’ll want to upgrade manually to make sure your embeds don’t break when you upgrade both your Metabase and your SDK version.

-

To pin a version of Metabase, you must:

+

Manually pinning your instance version on Metabase Cloud

-
    -
  • Be on Metabase Cloud (obviously)
  • -
  • Be on the Pro or Enterprise plans
  • -
+

To manually pin your version of Metabase:

-

Why you’d want to pin your Metabase Cloud version

+
    +
  1. Go to Admin settings > Settings > Embedding.
  2. +
  3. Go to the Embedded analytics SDK card.
  4. +
  5. Scroll to Version pinning and click Request version pinning.
  6. +
-

Normally, Metabase Cloud upgrades your Metabase as new versions roll out so that you don’t have to deal with upgrades.

- -

But if you’re using the SDK with Metabase Cloud, you’ll want to upgrade manually to make sure your embeds don’t break when you upgrade both your Metabase and your SDK version.

- -

To upgrade manually, you can pin your Metabase version so that it stays in sync with the SDK version you’re using. That way you can choose when to upgrade your Metabase.

+

This will open a mailto link to our support team.

diff --git a/_site/docs/master/installation-and-operation/upgrading-metabase.html b/_site/docs/master/installation-and-operation/upgrading-metabase.html index 9fc1f73e59..90d3f51c96 100644 --- a/_site/docs/master/installation-and-operation/upgrading-metabase.html +++ b/_site/docs/master/installation-and-operation/upgrading-metabase.html @@ -49,7 +49,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -4698,11 +4698,17 @@
Other resources

Upgrading Metabase

-

This page covers how to upgrade to a new Metabase release.

+

This page covers how to upgrade to a new Metabase release.

+ +

Upgrading Metabase Cloud

-

If you’re on a Metabase Cloud plan, we’ll upgrade your Metabase automatically with each new release; no action needed on your end.

+

If you’re on a Metabase Cloud plan, we’ll upgrade your Metabase automatically with each new release; no action needed on your end (unless you’re using the Embedded analytics SDK).

How soon we upgrade you depends on the type of release:

@@ -4713,6 +4719,14 @@

Upgrading Metabase Cloud

Cloud customers can request an early upgrade by emailing support at help@metabase.com. Include the URL of the Metabase you want us to upgrade.

+

Instances using the Embedded analtyics SDK on Metabase Cloud must request an upgrade

+ +

If you’re using the Embedded analytics SDK on Metabase Cloud, we pin your version so that it doesn’t upgrade automatically, as you should test the changes before upgrading.

+ +

To upgrade your Metabase, you’ll need to request an upgrade by contacting support.

+ +

See our upgrade guide for the Embedded analytics SDK.

+

Upgrading a self-hosted Metabase

Here are the steps for upgrading to a new Metabase version (major or minor):

diff --git a/_site/docs/master/permissions/impersonation.html b/_site/docs/master/permissions/impersonation.html index 83207f9b92..4f2399b366 100644 --- a/_site/docs/master/permissions/impersonation.html +++ b/_site/docs/master/permissions/impersonation.html @@ -4717,7 +4717,7 @@

Impersonation permissions

-

For now, impersonation access is only available for MySQL, PostgreSQL, Redshift, Snowflake, and SQL Server. If you want to switch database connections based on who is logged in, check out Database routing.

+

For now, impersonation access is only available for ClickHouse, MySQL, PostgreSQL, Redshift, Snowflake, and SQL Server. If you want to switch database connections based on who is logged in, check out Database routing.

diff --git a/_site/docs/master/questions/native-editor/writing-sql.html b/_site/docs/master/questions/native-editor/writing-sql.html index d1f1d8ec85..3b81fb7ace 100644 --- a/_site/docs/master/questions/native-editor/writing-sql.html +++ b/_site/docs/master/questions/native-editor/writing-sql.html @@ -4714,7 +4714,7 @@

Starting a new SQL query

SQL editor

-

To try it out, make sure you’ve selected the Sample Database, then paste in this short SQL query:

+

To try it out, make sure you’ve selected the Sample Database, then paste in this short SQL query:

SELECT
     sum(subtotal),
diff --git a/_site/docs/master/questions/query-builder/expressions/converttimezone.html b/_site/docs/master/questions/query-builder/expressions/converttimezone.html
index a7a6102e3b..f7a9206aca 100644
--- a/_site/docs/master/questions/query-builder/expressions/converttimezone.html
+++ b/_site/docs/master/questions/query-builder/expressions/converttimezone.html
@@ -5012,7 +5012,7 @@ 
 
 

SQL

-

When you run a question using the query builder, Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results.

+

When you run a question using the query builder, Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results.

If our timestamp sample data is a timestamp without time zone stored in a PostgreSQL database:

diff --git a/_site/docs/master/questions/query-builder/expressions/countif.html b/_site/docs/master/questions/query-builder/expressions/countif.html index 0fc61eb54d..90e4832a9a 100644 --- a/_site/docs/master/questions/query-builder/expressions/countif.html +++ b/_site/docs/master/questions/query-builder/expressions/countif.html @@ -5036,7 +5036,7 @@

Conditional running counts

SQL

-

When you run a question using the query builder, Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results.

+

When you run a question using the query builder, Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results.

If our sample data is stored in a PostgreSQL database, the SQL query:

diff --git a/_site/docs/master/questions/query-builder/expressions/datetimeadd.html b/_site/docs/master/questions/query-builder/expressions/datetimeadd.html index a7ae1acc9d..c937a46f67 100644 --- a/_site/docs/master/questions/query-builder/expressions/datetimeadd.html +++ b/_site/docs/master/questions/query-builder/expressions/datetimeadd.html @@ -4903,7 +4903,7 @@

datetimeSubtract

SQL

-

When you run a question using the query builder, Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results.

+

When you run a question using the query builder, Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results.

If our coffee sample data is stored in a PostgreSQL database:

diff --git a/_site/docs/master/questions/query-builder/expressions/datetimediff.html b/_site/docs/master/questions/query-builder/expressions/datetimediff.html index 23848ba4be..3a35ca52e9 100644 --- a/_site/docs/master/questions/query-builder/expressions/datetimediff.html +++ b/_site/docs/master/questions/query-builder/expressions/datetimediff.html @@ -4849,7 +4849,7 @@

SQL

-

When you run a question using the query builder, Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results.

+

When you run a question using the query builder, Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results.

If our cheese sample data is stored in a PostgreSQL database:

diff --git a/_site/docs/master/questions/query-builder/expressions/datetimesubtract.html b/_site/docs/master/questions/query-builder/expressions/datetimesubtract.html index 4153c63d2e..d66542e8c8 100644 --- a/_site/docs/master/questions/query-builder/expressions/datetimesubtract.html +++ b/_site/docs/master/questions/query-builder/expressions/datetimesubtract.html @@ -4903,7 +4903,7 @@

datetimeAdd

SQL

-

When you run a question using the query builder, Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results.

+

When you run a question using the query builder, Metabase will convert your graphical query settings (filters, summaries, etc.) into a query, and run that query against your database to get your results.

If our events sample data is stored in a PostgreSQL database:

diff --git a/_site/docs/master/questions/query-builder/expressions/isempty.html b/_site/docs/master/questions/query-builder/expressions/isempty.html index 1240a735d8..4eace3c9da 100644 --- a/_site/docs/master/questions/query-builder/expressions/isempty.html +++ b/_site/docs/master/questions/query-builder/expressions/isempty.html @@ -4861,7 +4861,7 @@

SQL

-

In most cases (unless you’re using a NoSQL database), questions created from the query builder are converted into SQL queries that run against your database or data warehouse.

+

In most cases (unless you’re using a NoSQL database), questions created from the query builder are converted into SQL queries that run against your database or data warehouse.

CASE WHEN (Feedback = "" OR Feedback IS NULL) THEN "No feedback"
      ELSE Feedback END
diff --git a/_site/docs/master/questions/query-builder/expressions/isnull.html b/_site/docs/master/questions/query-builder/expressions/isnull.html
index acfaaf3f85..2d2f760435 100644
--- a/_site/docs/master/questions/query-builder/expressions/isnull.html
+++ b/_site/docs/master/questions/query-builder/expressions/isnull.html
@@ -4865,7 +4865,7 @@ 
 
 

SQL

-

In most cases (unless you’re using a NoSQL database), questions created from the query builder are converted into SQL queries that run against your database or data warehouse.

+

In most cases (unless you’re using a NoSQL database), questions created from the query builder are converted into SQL queries that run against your database or data warehouse.

CASE WHEN Feedback IS NULL THEN "Unknown feedback",
      ELSE Feedback END
diff --git a/_site/docs/master/questions/query-builder/expressions/now.html b/_site/docs/master/questions/query-builder/expressions/now.html
index 88ca6164db..462a81fed9 100644
--- a/_site/docs/master/questions/query-builder/expressions/now.html
+++ b/_site/docs/master/questions/query-builder/expressions/now.html
@@ -4815,7 +4815,7 @@ 
 
 

SQL

-

When you run a question using the query builder, Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results.

+

When you run a question using the query builder, Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results.

By default, now uses your Metabase’s report time zone. If your admin hasn’t set a report time zone, now will use your database’s time zone.

diff --git a/_site/docs/master/questions/query-builder/expressions/sumif.html b/_site/docs/master/questions/query-builder/expressions/sumif.html index 07664d4557..09e3fbe0b3 100644 --- a/_site/docs/master/questions/query-builder/expressions/sumif.html +++ b/_site/docs/master/questions/query-builder/expressions/sumif.html @@ -5013,7 +5013,7 @@

CumulativeSum

SQL

-

When you run a question using the query builder, Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results.

+

When you run a question using the query builder, Metabase will convert your query builder settings (filters, summaries, etc.) into a SQL query, and run that query against your database to get your results.

If our payment sample data is stored in a PostgreSQL database, the SQL query:

diff --git a/_site/docs/master/questions/query-builder/join.html b/_site/docs/master/questions/query-builder/join.html index f238639a5b..919d31f21f 100644 --- a/_site/docs/master/questions/query-builder/join.html +++ b/_site/docs/master/questions/query-builder/join.html @@ -49,7 +49,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -4702,28 +4702,28 @@

Joining data

You can join data to combine your current data with another table, or even with a saved question.

-

After you click on the Join Data button to add a join step, you’ll need to pick the data (from the same database) that you want to join. You can only pick tables and saved questions that are from the same database as your starting data.

+

After you click the “Join Data” button to add a join step, you’ll need to pick the data (from the same database) that you want to join. You can only pick tables and saved questions that are from the same database as your starting data.

Picking the data to join

-

Next, you’ll need to pick the columns you want to join on. This means you pick a column from the first table, and a column from the second table, and the join will stitch rows together where the value from the first column is equal to the value in the second column. A very common example is to join on an ID column in each table, so if you happened to pick a table to join on where there is a foreign key relationship between the tables, Metabase will automatically pick those corresponding ID columns for you. At the end of your join step, there’s a Columns button you can click to choose which columns you want to include from the joined data.

+

Next, you’ll need to pick the columns you want to join on. This means you pick a column from the first table and a column from the second table, and the join will stitch rows together where the value from the first column equals the value in the second column. A very common example is joining on an ID column in each table. If you pick a table to join where there’s a foreign key relationship between the tables, Metabase will automatically pick those corresponding ID columns for you. At the end of your join step, there’s a “Columns” button you can click to choose which columns you want to include from the joined data.

-

By default, Metabase will do a left outer join, but you can click on the Venn diagram icon to select a different type of join. Not all databases support all types of joins, so Metabase will only display the options supported by the database you’re using.

+

By default, Metabase will do a left outer join, but you can click the Venn diagram icon to select a different type of join. Not all databases support all types of joins, so Metabase will only display the options supported by the database you’re using.

Here are the basic types of joins:

    -
  • Left outer join: select all records from Table A, along with records from Table B that meet the join condition, if any.
  • -
  • Right outer join: select all records from Table B, along with records from Table A that meet the join condition, if any.
  • -
  • Inner join: only select the records from Table A and B where the join condition is met.
  • -
  • Full outer join: select all records from both tables, whether or not the join condition is met.
  • +
  • Left outer join: Select all records from Table A, along with records from Table B that meet the join condition, if any.
  • +
  • Right outer join: Select all records from Table B, along with records from Table A that meet the join condition, if any.
  • +
  • Inner join: Only select the records from Table A and B where the join condition is met.
  • +
  • Full outer join: Select all records from both tables, whether or not the join condition is met.
-

A left outer join example: If Table A is Orders and Table B is Customers, and assuming you do a join where the customer_id column in Orders is equal to the ID column in Customers, when you do a left outer join your results will be a full list of all your orders, and each order row will also display the columns of the customer who placed that order. Since a single customer can place many orders, a given customer’s information might be repeated many times for different order rows. If there isn’t a corresponding customer for a given order, the order’s information will be shown, but the customer columns will just be blank for that row.

+

A left outer join example: If Table A is Orders and Table B is Customers, and you do a join where the customer_id column in Orders equals the ID column in Customers, when you do a left outer join your results will be a full list of all your orders, and each order row will also display the columns of the customer who placed that order. Since a single customer can place many orders, a given customer’s information might be repeated many times for different order rows. If there isn’t a corresponding customer for a given order, the order’s information will be shown, but the customer columns will just be blank for that row.

Multiple stages of joins

-

In many cases you might have tables A, B, and C, where A and B have a connection, and B and C have a connection, but A and C don’t. If you want to join A to B to C, all you have to do is add multiple join steps. Click on Join Data, join table A to table B, then click the Join Data step below that completed join block to add a second join step, and join the results of your last join to table C.

+

In many cases you might have tables A, B, and C, where A and B have a connection, and B and C have a connection, but A and C don’t. If you want to join A to B to C, all you have to do is add multiple join steps. Click “Join Data,” join table A to table B, then click the “Join Data” step below that completed join block to add a second join step, and join the results of your last join to table C.

An A to B to C join

@@ -4750,9 +4750,9 @@

Joining with different operators

Joins with custom expressions

-

Sometimes people want to join data using constant values or relative dates or some other custom conditions.

+

Sometimes you want to join data using constant values, relative dates, or some other custom conditions.

-

For example, let’s say you have a table of reviews, and want to add a column that includes the average rating for all products.

+

For example, let’s say you have a table of reviews and want to add a column that includes the average rating for all products.

You could first calculate the average rating, then join the result to the reviews table on 1=1.

@@ -4767,13 +4767,27 @@

Joins with custom expressions

  • Click Done.
  • -

    See a list of expressions.

    +

    Another example: Let’s say you have:

    + +
      +
    • A customers table that stores names under first_name and last_name
    • +
    • An accounts table that stores first and last names in a single column, full_name
    • +
    + +

    You could join those tables using a custom expression. The join key for the customers table would look something like:

    + +
    concat([first_name], " ", [last_name])
    +
    + +

    And the join key for the accounts table would simply be the full_name column.

    + +

    Take a look at our list of expressions.

    Further reading