diff --git a/fabric/item/report/definition/bookmark/1.1.0/schema.json b/fabric/item/report/definition/bookmark/1.1.0/schema.json new file mode 100644 index 0000000..708a8b6 --- /dev/null +++ b/fabric/item/report/definition/bookmark/1.1.0/schema.json @@ -0,0 +1,617 @@ +{ + "$id": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/bookmark/1.1.0/schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Bookmark", + "description": "Defines a bookmark that captures the state of a report.", + "type": "object", + "properties": { + "$schema": { + "description": "Defines the schema to use for an item.", + "type": "string", + "const": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/bookmark/1.1.0/schema.json" + }, + "displayName": { + "description": "Display name for the bookmark.", + "type": "string" + }, + "name": { + "description": "Unique identifier for the bookmark - unique across the report.", + "type": "string" + }, + "options": { + "description": "Additional options for the bookmark", + "$ref": "#/definitions/BookmarkOptions" + }, + "explorationState": { + "$ref": "#/definitions/ExplorationState", + "description": "Bookmark definition to use when applying this bookmark." + } + }, + "additionalProperties": false, + "required": [ + "$schema", + "displayName", + "explorationState", + "name" + ], + "definitions": { + "BookmarkOptions": { + "type": "object", + "properties": { + "applyOnlyToTargetVisuals": { + "description": "Only applies changes to selected visuals when the bookmark was captured.", + "type": "boolean" + }, + "targetVisualNames": { + "description": "Specific visuals to which this bookmark applies.", + "type": "array", + "items": { + "type": "string" + } + }, + "suppressActiveSection": { + "description": "Don't apply changes to active section.", + "type": "boolean" + }, + "suppressData": { + "description": "Don't apply data changes.", + "type": "boolean" + }, + "suppressDisplay": { + "description": "Don't apply display property changes.", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ExplorationState": { + "type": "object", + "properties": { + "version": { + "description": "Version of bookmark.", + "type": "string" + }, + "activeSection": { + "description": "Name of the page that was active when this bookmark was captured.", + "type": "string" + }, + "filters": { + "description": "State of filters for the report when the bookmark was captured.", + "$ref": "#/definitions/FiltersState" + }, + "sections": { + "description": "State of all pages when the bookmark was captured.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/SectionState" + } + }, + "objects": { + "description": "Changes to formatting to apply in this bookmark.", + "$ref": "#/definitions/DataViewObjectDefinitionUpdates" + }, + "dataSourceVariables": { + "description": "A string containing the state of any variables from the underlying direct query data source that should be overridden when rendering this content.\nData source variables do not supply values for M parameters in the semantic model. Instead, data source variables are applied when accessing the underlying direct query source.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "activeSection", + "sections", + "version" + ] + }, + "FiltersState": { + "type": "object", + "properties": { + "byName": { + "description": "Filter containers that will be identified by name.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/FilterContainerState" + } + }, + "byExpr": { + "description": "Filter containers that will be identified by expression.", + "type": "array", + "items": { + "$ref": "#/definitions/FilterContainerState" + } + }, + "byType": { + "description": "Filter containers that will be identified by type.", + "type": "array", + "items": { + "$ref": "#/definitions/FilterContainerState" + } + }, + "byTransientState": { + "description": "Filter containers that are transient", + "type": "array", + "items": { + "$ref": "#/definitions/FilterContainerState" + } + } + }, + "additionalProperties": false + }, + "FilterContainerState": { + "description": "Meaning of properties is same as Filters defined outside the bookmark.", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "filter": { + "description": "Defines a filter element as a partial query structure", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/FilterDefinition" + }, + "expression": { + "description": "Holds a single expression and associated metadata.\nName, NativeReferenceName, and Annotations may be specified for any expression.\nEach other property represents a specific type of expression and exactly one of these other properties must be specified.", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + }, + "restatement": { + "type": "string" + }, + "howCreated": { + "type": "number", + "anyOf": [ + { + "const": 0 + }, + { + "const": 1 + }, + { + "const": 2 + }, + { + "const": 3 + }, + { + "const": 4 + }, + { + "const": 5 + }, + { + "const": 6 + }, + { + "const": 7 + } + ] + }, + "precedence": { + "description": "Precedence of the filter. The higher the number, the higher the precedence of the filter.\n\nEach filter is evaluated in the presence of other filters which are strictly higher precedence,\nand in the absense of all filters which are equal or lower precedence.\n\nNote that not all precedence levels are encoded here yet. For example, cross filters have higher\nprecedence than data filters, and data filters have higher precedence than drill filters. Neither\ncross filters nor data filters have an entry in this enumeration yet, but instead have their\nprecedence enforced by explicit code in the FilterGenerator. It is a future work item to encode\nall precendence levels here.\n\nNote also that when we add new precedence levels in this enumeration, we may have to change existing\nprecedence levels. If that happens, we will need to add Upgrader code to translate the precedence\nlevels from one version to another.", + "const": 0, + "type": "number" + }, + "isTransient": { + "type": "boolean" + }, + "cachedDisplayNames": { + "type": "array", + "items": {} + }, + "filterExpressionMetadata": {} + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "SectionState": { + "type": "object", + "properties": { + "filters": { + "description": "State of filters for this page when the bookmark was captured.", + "$ref": "#/definitions/FiltersState" + }, + "visualContainers": { + "description": "Flat list of visual-container-specific state.\nDoes not include state of groups.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VisualContainerState" + } + }, + "visualContainerGroups": { + "description": "Flat list of group-specific state.\nDoes not include state of visual containers.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VisualContainerGroupState" + } + } + }, + "additionalProperties": false, + "required": [ + "visualContainers" + ] + }, + "VisualContainerState": { + "type": "object", + "properties": { + "filters": { + "description": "State of filters for this page when the bookmark was captured.", + "$ref": "#/definitions/FiltersState" + }, + "singleVisual": { + "description": "State of the configuration of the visual.", + "$ref": "#/definitions/SingleVisualConfigState" + }, + "highlight": { + "description": "Cross-highlights captured in the bookmark.", + "$ref": "#/definitions/HighlightState" + } + }, + "additionalProperties": false + }, + "SingleVisualConfigState": { + "type": "object", + "properties": { + "visualType": { + "description": "Name of visual", + "type": "string" + }, + "autoSelectVisualType": { + "description": "Can the visual type change as data changes in the bookmark.", + "type": "boolean" + }, + "targetType": { + "description": "Change visual to this type - if different from the original state. Used by personalize this visual on the web.", + "type": "string" + }, + "targetAutoSelectVisualType": { + "description": "Change auto changing visual type.", + "type": "boolean" + }, + "objects": { + "description": "Changes to formatting to apply in this bookmark.", + "$ref": "#/definitions/DataViewObjectDefinitionUpdates" + }, + "orderBy": { + "description": "Updated ordering of data.", + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QuerySortClause" + } + }, + "activeProjections": { + "description": "Updated projections that are used by the visual.", + "$ref": "#/definitions/ProjectionState" + }, + "projections": { + "description": "Projections are stored only when presentation changes are applied (such as during personalize visuals)\nor if the projections are resolved projections of a field parameter. When projections are resolved\nprojections of a field parameter but presentation changes are not applied, nulls will be present in the\narray to indicate where non-parameter projections of the visual are.", + "$ref": "#/definitions/ProjectionState" + }, + "parameters": { + "description": "Field parameters that were used as part of the query. We always capture parameter state when parameters\nare present regardless of the bookmark type.", + "$ref": "#/definitions/ParameterStateByRole" + }, + "display": { + "description": "Optional changes to how the visual is displayed.", + "$ref": "#/definitions/VisualContainerDisplayState" + }, + "cachedFilterDisplayItems": { + "type": "array", + "items": {} + }, + "expansionStates": { + "description": "Changes to expansion state.", + "type": "array", + "items": {} + }, + "filterExpressionMetadata": {}, + "isDrillDisabled": { + "description": "Indicates whether the drill feature is disabled", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "DataViewObjectDefinitionUpdates": { + "type": "object", + "properties": { + "merge": { + "description": "ObjectDefinitions to be merged with the target.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/DataViewObjectDefinitions" + }, + "remove": { + "description": "ObjectDefinitions to be deleted from the existing instances.", + "type": "array", + "items": { + "$ref": "#/definitions/DataViewObjectPropertyIdWithSelector" + } + } + }, + "additionalProperties": false + }, + "DataViewObjectPropertyIdWithSelector": { + "type": "object", + "properties": { + "object": { + "description": "Name of visual object.", + "type": "string" + }, + "property": { + "description": "Name of property to change for the visual object.", + "type": "string" + }, + "selector": { + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector", + "description": "Scope at which to apply this change." + } + }, + "additionalProperties": false, + "required": [ + "object", + "property", + "selector" + ] + }, + "ProjectionState": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + } + }, + "ParameterStateByRole": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/ParameterState" + } + } + }, + "ParameterState": { + "type": "object", + "properties": { + "expr": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer", + "description": "Parameter expression." + }, + "index": { + "description": "Index from which parameter starts in the visual projection.", + "type": "number" + }, + "length": { + "description": "Number of fields created by the parameter.", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "expr", + "index", + "length" + ] + }, + "VisualContainerDisplayState": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/definitions/VisualContainerDisplayMode", + "description": "How is this visual shown in the bookmark." + }, + "maximizedOptions": { + "description": "Options if maximized.", + "type": "object", + "properties": { + "dataTable": { + "description": "Type of table to show.", + "enum": [ + "accessible", + "normal" + ], + "type": "string" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "VisualContainerDisplayMode": { + "type": "string", + "anyOf": [ + { + "const": "maximize", + "description": "Visual is shown full screen." + }, + { + "const": "spotlight", + "description": "Visual is spotlighted and other visuals on the page are dimmed." + }, + { + "const": "elevation", + "description": "Visual is shown with an elevation." + }, + { + "const": "hidden", + "description": "Visual is hidden." + } + ] + }, + "HighlightState": { + "type": "object", + "properties": { + "selection": { + "description": "Data points selected for the highlights.", + "anyOf": [ + { + "$ref": "#/definitions/DecomposedSelectors" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/SelectorsByColumn" + } + } + ] + }, + "filterExpressionMetadata": { + "description": "Additional metadata for the filter generated from highlights." + } + }, + "additionalProperties": false, + "required": [ + "selection" + ] + }, + "DecomposedSelectors": { + "type": "object", + "properties": { + "decomposedIdentities": { + "$ref": "#/definitions/DecomposedIdentities" + }, + "queryNameMap": { + "description": "The `queryNameIndex` key is the index in the queryNames array;\nthe `number` value is the columnIndex properties in DecomposedScopeIdentity.\nThis map tracks the different queryName and their column shapes present in each dataMap", + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[0-9]+$": { + "type": "array", + "items": { + "type": "number" + } + } + } + } + }, + "queryNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "id": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "DecomposedIdentities": { + "type": "object", + "properties": { + "values": { + "description": "`values` have 3 levels\noutermost level:\n - for SelectorsByColumn[], it's the number of selectors in this array\n - for FilterExpressionMetadata, it's the number of cachedValueItems.\nsecond level:\n - for SelectorsByColumn, it is the number of scopedIdentities in the particular SelectorsByColumn\n - for FilterExpressionMetadata, it is the number of identities in a cachedValueItem\ninnermost level:\n - the key is the index of the column structure of scopedIdentity in `columns` list;\n - the the value is the expressions list in one identity", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[0-9]+$": { + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + } + } + } + } + }, + "columns": { + "description": "Defines the set of group-on key columns.", + "type": "array", + "items": { + "$ref": "#/definitions/DecomposedTree" + } + } + }, + "additionalProperties": false, + "required": [ + "columns", + "values" + ] + }, + "DecomposedTree": { + "type": "object", + "properties": { + "left": { + "$ref": "#/definitions/DecomposedTree" + }, + "right": { + "$ref": "#/definitions/DecomposedTree" + }, + "value": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + }, + "additionalProperties": false + }, + "SelectorsByColumn": { + "type": "object", + "properties": { + "dataMap": { + "$ref": "#/definitions/SelectorsForColumn", + "description": "Data-bound repetition selection." + }, + "metadata": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Metadata-bound repetition selection. Refers to a DataViewMetadataColumn queryName." + }, + "id": { + "type": "string", + "description": "User-defined repetition selection." + } + }, + "additionalProperties": false + }, + "SelectorsForColumn": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/DataRepetitionSelector" + } + } + }, + "VisualContainerGroupState": { + "type": "object", + "properties": { + "isHidden": { + "description": "Is the group hidden in the bookmark.", + "type": "boolean" + }, + "children": { + "description": "State of child groups.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/VisualContainerGroupState" + } + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/fabric/item/report/definition/formattingObjectDefinitions/1.1.0/schema.json b/fabric/item/report/definition/formattingObjectDefinitions/1.1.0/schema.json new file mode 100644 index 0000000..1927052 --- /dev/null +++ b/fabric/item/report/definition/formattingObjectDefinitions/1.1.0/schema.json @@ -0,0 +1,145 @@ +{ + "$id": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/formattingObjectDefinitions/1.1.0/schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Formatting Object Definitions", + "description": "Defines shared definitions for report object formatting.", + "definitions": { + "DataViewObjectDefinitions": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/definitions/DataViewObjectDefinition" + } + } + }, + "DataViewObjectDefinition": { + "type": "object", + "properties": { + "selector": { + "$ref": "#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/DataViewObjectPropertyDefinitions" + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + }, + "DataViewObjectPropertyDefinitions": { + "type": "object", + "additionalProperties": {} + }, + "Selector": { + "type": "object", + "properties": { + "data": { + "description": "Scope is defined by data bound to the visual.", + "type": "array", + "items": { + "$ref": "#/definitions/DataRepetitionSelector" + } + }, + "metadata": { + "description": "Defines the scope to a specific field.", + "type": "string" + }, + "id": { + "description": "User defined scope.", + "type": "string" + }, + "highlightMatching": { + "description": "Describes how the Selector should behave towards Highlighted Values within the Scope matched by that Selector.", + "default": "ValuesOnly", + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "Only non-highlighted value will be selected, even if a highlighted value exists." + }, + { + "const": 1, + "description": "Non-highlighted values are selected. If highlighted values exist, they are selected as well." + }, + { + "const": 2, + "description": "If a highlighted value exists, it's selected. Otherwise, the non-highlighted value is selected." + } + ] + }, + "order": { + "description": "Specifies a user-defined ordering of identical properties.\nSelector constructors should strive to monitonically increase this number across identical properties differing by id.", + "type": "number" + } + }, + "additionalProperties": false + }, + "DataRepetitionSelector": { + "type": "object", + "properties": { + "scopeId": { + "description": "Defines the intersection of scopes. For example - product color = red.", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + }, + "wildcard": { + "description": "Defines a match against all instances of a given DataView scope. Does not match Subtotals.\nDeprecated: - Use roles instead.", + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + }, + "roles": { + "description": "Matches against all fields in a role.", + "type": "array", + "items": { + "type": "string" + } + }, + "total": { + "description": "Matches against the totals and subtotals.", + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + }, + "dataViewWildcard": { + "description": "Matches all instances or all totals or both.", + "$ref": "#/definitions/DataViewWildcard" + } + }, + "additionalProperties": false + }, + "DataViewWildcard": { + "type": "object", + "properties": { + "matchingOption": { + "$ref": "#/definitions/DataViewWildcardMatchingOption", + "description": "Defines the matching option to use." + } + }, + "additionalProperties": false, + "required": [ + "matchingOption" + ] + }, + "DataViewWildcardMatchingOption": { + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "Match Identities and Totals (default)" + }, + { + "const": 1, + "description": "Match Instances with Identities only" + }, + { + "const": 2, + "description": "Match Totals only" + } + ] + } + } +} \ No newline at end of file diff --git a/fabric/item/report/definition/page/1.1.0/schema.json b/fabric/item/report/definition/page/1.1.0/schema.json new file mode 100644 index 0000000..985e0d5 --- /dev/null +++ b/fabric/item/report/definition/page/1.1.0/schema.json @@ -0,0 +1,841 @@ +{ + "$id": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/page/1.1.0/schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Page", + "description": "Defines a single report page.", + "type": "object", + "properties": { + "$schema": { + "description": "Defines the schema to use for an item.", + "type": "string", + "const": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/page/1.1.0/schema.json" + }, + "name": { + "description": "A unique identifier for the page across the whole report.", + "maxLength": 50, + "type": "string" + }, + "displayName": { + "description": "A user facing name for this page.", + "type": "string" + }, + "displayOption": { + "$ref": "#/definitions/PageDisplayOption", + "description": "Defines how the page is scaled." + }, + "height": { + "description": "Height of the page (in pixels) - optional only for 'DeprecatedDynamic' option, required otherwise.", + "type": "number" + }, + "width": { + "description": "Width of the page (in pixels) - optional only for 'DeprecatedDynamic' option, required otherwise.", + "type": "number" + }, + "filterConfig": { + "description": "Filters that apply to all the visuals on this page - on top of the filters defined for the whole report.", + "$ref": "#/definitions/FilterConfig" + }, + "pageBinding": { + "description": "Additional metadata defined for how this page is used (tooltip, drillthrough, etc).", + "$ref": "#/definitions/PageBinding" + }, + "objects": { + "description": "Defines the formatting for different objects on a page.", + "$ref": "#/definitions/PageFormattingObjects" + }, + "visibility": { + "description": "Defines when this page should be visible - by default it is always visible.", + "type": "string", + "anyOf": [ + { + "const": "AlwaysVisible", + "description": "Page is always shown in the pages list" + }, + { + "const": "HiddenInViewMode", + "description": "Page is not visible when viewing report in View mode." + } + ] + }, + "visualInteractions": { + "description": "Defines how data point selection on a specific visual flow (as filters) to other visuals on the page.\nBy default it is up-to the visual to apply it either as a cross-highlight or as a filter.", + "type": "array", + "items": { + "$ref": "#/definitions/VisualInteraction" + } + }, + "autoPageGenerationConfig": { + "description": "Configuration that was used to automatically generate a page (for example using 'Auto create the report' option).", + "$ref": "#/definitions/AutoPageGenerationConfig" + }, + "annotations": { + "description": "Additional information to be saved (for example comments, readme, etc) for this page.", + "type": "array", + "items": { + "$ref": "#/definitions/Annotation" + } + }, + "howCreated": { + "description": "Source of creation of this page.", + "type": "string", + "anyOf": [ + { + "const": "Default", + "description": "Page is generated by user interaction." + }, + { + "const": "Copilot", + "description": "Page is created by copilot." + } + ] + } + }, + "additionalProperties": false, + "required": [ + "$schema", + "displayName", + "displayOption", + "name" + ], + "definitions": { + "PageDisplayOption": { + "type": "string", + "anyOf": [ + { + "const": "DeprecatedDynamic", + "description": "No dynamic page without width or height.\nDeprecated: Use other display options." + }, + { + "const": "FitToPage", + "description": "Page is scaled so both width and height fit on the current viewport." + }, + { + "const": "FitToWidth", + "description": "Only width is scaled to fit on the current viewport, height will be updated to maintain page aspect ratio." + }, + { + "const": "ActualSize", + "description": "No scaling is done - page is centered relative to the report canvas." + }, + { + "const": "ActualSizeTopLeft", + "description": "No scaling is done - page is anchored to top-left corder relative to the report canvas.\nDeprecated: Use ActualSize instead." + } + ] + }, + "FilterConfig": { + "type": "object", + "properties": { + "filters": { + "description": "Defines the definitions and metadata for the filters.", + "type": "array", + "items": { + "$ref": "#/definitions/FilterContainer" + } + }, + "filterSortOrder": { + "description": "Defines how the filters sorted - by name or custom sorting\nIf custom sorting, then ordinal property of every filter is used as the sort order,\nfilters where ordinal is skipped will be shown at the end; ordering will fallback to display name of the field.", + "type": "string", + "anyOf": [ + { + "const": "Ascending", + "description": "Sorted ascending by display name of the filter field." + }, + { + "const": "Descending", + "description": "Sorted descending by display name of the filter field." + }, + { + "const": "Custom", + "description": "Sorted ascending by ordinal property of filters." + } + ] + } + }, + "additionalProperties": false + }, + "FilterContainer": { + "type": "object", + "properties": { + "name": { + "description": "A unique name (across the whole report definition) defined for this filter.", + "type": "string" + }, + "displayName": { + "description": "An alternate name to use when displaying this filter - by default the display name of the field will be used, if there is no field or display name,\nthen restatement of the filter will be shown. Only applies to certain filter types.", + "type": "string" + }, + "ordinal": { + "description": "Defines the ordering of this filter w.r.t. other filters - only applies when Custom sort order is set.", + "type": "number" + }, + "field": { + "description": "Defines the field from your data that is filtered.", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + }, + "type": { + "description": "The type of a filter.", + "type": "string", + "anyOf": [ + { + "const": "Categorical" + }, + { + "const": "Range" + }, + { + "const": "Advanced" + }, + { + "const": "Passthrough" + }, + { + "const": "TopN" + }, + { + "const": "Include" + }, + { + "const": "Exclude" + }, + { + "const": "RelativeDate" + }, + { + "const": "Tuple" + }, + { + "const": "RelativeTime" + }, + { + "const": "VisualTopN" + } + ] + }, + "filter": { + "description": "Defines the actual filter definition - it is dependent on the type of filter.", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/FilterDefinition" + }, + "restatement": { + "description": "A custom restatement to show for the filter - only applies to Passthrough filter type. For all other filters, a restatement is generated based on the filter definition.", + "type": "string" + }, + "howCreated": { + "description": "Specifies how this filter was first created.", + "type": "string", + "anyOf": [ + { + "const": "Auto", + "description": "Created automatically when a field is used in the visual." + }, + { + "const": "User", + "description": "Filters created from fields not used in a visual by the user." + }, + { + "const": "Drill", + "description": "Created when drilling down on a data point in a visual." + }, + { + "const": "Include", + "description": "Created by including a data point in a visual." + }, + { + "const": "Exclude", + "description": "Created by excluding a data point from a visual." + }, + { + "const": "Drillthrough", + "description": "Created by drill context that is applied to the page when using drill-through\naction from another page." + } + ] + }, + "isHiddenInViewMode": { + "description": "Defines whether to hide this filter when viewing the report.", + "type": "boolean" + }, + "isLockedInViewMode": { + "description": "Defines whether the filter value can be changed when viewing the report.", + "type": "boolean" + }, + "objects": { + "description": "Formatting for different \"objects\" of a filter card", + "$ref": "#/definitions/FilterContainerFormattingObjects" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "FilterContainerFormattingObjects": { + "type": "object", + "properties": { + "general": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/FilterContainerFormattingObjectsProperties", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + } + }, + "additionalProperties": false + }, + "FilterContainerFormattingObjectsProperties": { + "type": "object", + "properties": { + "requireSingleSelect": {}, + "isInvertedSelectionMode": {} + }, + "additionalProperties": false + }, + "PageBinding": { + "type": "object", + "properties": { + "name": { + "description": "Name of this binding - unique across the report.", + "type": "string" + }, + "type": { + "$ref": "#/definitions/BindingType", + "description": "Specific usage of this binding (for example drillthrough)." + }, + "referenceScope": { + "description": "What is the scope under which the binding applies.", + "default": "Default", + "type": "string", + "anyOf": [ + { + "const": "Default", + "description": "Scope is restricted to the report." + }, + { + "const": "CrossReport", + "description": "Scope is across reports - for cross-report drillthrough." + } + ] + }, + "parameters": { + "description": "Additional parameters to apply when the binding is invoked.", + "type": "array", + "items": { + "$ref": "#/definitions/BindingParameter" + } + }, + "acceptsFilterContext": { + "description": "Should additional filter context flow when applying the binding.", + "default": "Default", + "type": "string", + "anyOf": [ + { + "const": "Default", + "description": "Flows filter context" + }, + { + "const": "None", + "description": "Additional filter context does not flow to the binding." + } + ] + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "BindingType": { + "type": "string", + "anyOf": [ + { + "const": "Default", + "description": "No specific usage of this binding." + }, + { + "const": "Drillthrough", + "description": "Binding to be used as drillthrough." + }, + { + "const": "Tooltip", + "description": "Binding to be used as tooltip page." + } + ] + }, + "BindingParameter": { + "type": "object", + "properties": { + "name": { + "description": "Name of the parameter - unique across the report.", + "type": "string" + }, + "boundFilter": { + "description": "Name of the filter which this parameter affects.", + "type": "string" + }, + "asAggregation": { + "description": "The parameter should be applied when the field of the filter is aggregated.", + "type": "boolean" + }, + "qnaSingleSelectRequired": { + "description": "Exactly one instance value should be picked as a filter for this parameter.", + "type": "boolean" + }, + "fieldExpr": { + "description": "Field expression for page binding", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + }, + "additionalProperties": false, + "required": [ + "boundFilter", + "name" + ] + }, + "PageFormattingObjects": { + "type": "object", + "properties": { + "pageInformation": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/PageInformation", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "pageSize": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/PageSize", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "background": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Background", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "displayArea": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/DisplayArea", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "outspace": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Background", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "outspacePane": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/OutspacePane", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "filterCard": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/FilterCard", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "pageRefresh": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/PageRefresh", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "personalizeVisual": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/PersonalizeVisual", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + } + }, + "additionalProperties": false + }, + "PageInformation": { + "type": "object", + "properties": { + "pageInformationName": {}, + "pageInformationQnaPodEnabled": {}, + "pageInformationAltName": {}, + "pageInformationType": {} + }, + "additionalProperties": false + }, + "PageSize": { + "type": "object", + "properties": { + "pageSizeTypes": {}, + "pageSizeWidth": {}, + "pageSizeHeight": {} + }, + "additionalProperties": false + }, + "Background": { + "type": "object", + "properties": { + "color": {}, + "image": {}, + "transparency": {} + }, + "additionalProperties": false + }, + "DisplayArea": { + "type": "object", + "properties": { + "verticalAlignment": {} + }, + "additionalProperties": false + }, + "OutspacePane": { + "type": "object", + "properties": { + "backgroundColor": {}, + "transparency": {}, + "foregroundColor": {}, + "titleSize": {}, + "searchTextSize": {}, + "headerSize": {}, + "fontFamily": {}, + "border": {}, + "borderColor": {}, + "checkboxAndApplyColor": {}, + "inputBoxColor": {}, + "width": {} + }, + "additionalProperties": false + }, + "FilterCard": { + "type": "object", + "properties": { + "backgroundColor": {}, + "transparency": {}, + "border": {}, + "borderColor": {}, + "foregroundColor": {}, + "textSize": {}, + "fontFamily": {}, + "inputBoxColor": {} + }, + "additionalProperties": false + }, + "PageRefresh": { + "type": "object", + "properties": { + "show": {}, + "refreshType": {}, + "duration": {}, + "dialogLauncher": {}, + "measure": {}, + "checkEvery": {} + }, + "additionalProperties": false + }, + "PersonalizeVisual": { + "type": "object", + "properties": { + "show": {}, + "perspectiveRef": {}, + "applyToAllPages": {} + }, + "additionalProperties": false + }, + "VisualInteraction": { + "type": "object", + "properties": { + "source": { + "description": "Visual name that will be the source of user interaction (selecting data point for example).", + "type": "string" + }, + "target": { + "description": "Visual name for the target of the interaction (selecting data point for example).", + "type": "string" + }, + "type": { + "$ref": "#/definitions/VisualInteractionFilterType", + "description": "How should the interaction flow from source to target visual (as highlights, as filter, none)." + } + }, + "additionalProperties": false, + "required": [ + "source", + "target", + "type" + ] + }, + "VisualInteractionFilterType": { + "type": "string", + "anyOf": [ + { + "const": "Default", + "description": "The target visual type determines if it should accept the interaction as a highlight or as a filter." + }, + { + "const": "DataFilter", + "description": "Data point selection is added as a filter to the target visual." + }, + { + "const": "HighlightFilter", + "description": "Data point selection is added as a highlight to the target visual." + }, + { + "const": "NoFilter", + "description": "Data point selection is ignored by the target visual." + } + ] + }, + "AutoPageGenerationConfig": { + "type": "object", + "properties": { + "selectedFields": { + "description": "Data fields to use for the auto page generation", + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + }, + "visualContainerConfigurations": { + "description": "Visuals already on the page previously generated by the auto-config", + "type": "array", + "items": { + "$ref": "#/definitions/QuickExploreVisualContainerConfig" + } + }, + "layout": { + "description": "The specific layout chosen to render the auto-visuals", + "$ref": "#/definitions/QuickExploreLayoutContainer" + } + }, + "additionalProperties": false, + "required": [ + "selectedFields", + "visualContainerConfigurations" + ] + }, + "QuickExploreVisualContainerConfig": { + "type": "object", + "properties": { + "name": { + "description": "Name of the visual - matches the name property in visual.json files", + "type": "string" + }, + "fields": { + "description": "Specific data fields used to build this visual from the full set of selected fields", + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "fields", + "name" + ] + }, + "QuickExploreLayoutContainer": { + "type": "object", + "properties": { + "related": { + "description": "A layout that has 1 hero visual and some related visuals", + "$ref": "#/definitions/QuickExploreRelatedLayout" + }, + "combination": { + "description": "Layout that generates visuals purely based on combination of fields\nDeprecated: Use related layout instead.", + "$ref": "#/definitions/QuickExploreCombinationLayout" + } + }, + "additionalProperties": false + }, + "QuickExploreRelatedLayout": { + "type": "object", + "properties": { + "version": { + "default": 1, + "type": "number" + }, + "dataTableName": { + "description": "If data table is shown, then the name of that visual", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "QuickExploreCombinationLayout": { + "type": "object", + "properties": { + "version": { + "default": 1, + "type": "number" + }, + "dataTableName": { + "description": "If data table is shown, then the name of that visual", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "Annotation": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the annotation.", + "type": "string" + }, + "value": { + "description": "A value for this annotation.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "value" + ] + } + } +} \ No newline at end of file diff --git a/fabric/item/report/definition/report/1.1.0/schema.json b/fabric/item/report/definition/report/1.1.0/schema.json new file mode 100644 index 0000000..87fed29 --- /dev/null +++ b/fabric/item/report/definition/report/1.1.0/schema.json @@ -0,0 +1,744 @@ +{ + "$id": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/report/1.1.0/schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Report", + "description": "Defines a report and its pages, visuals, settings, and additional information.", + "type": "object", + "properties": { + "$schema": { + "description": "Defines the schema to use for an item.", + "type": "string", + "const": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/report/1.1.0/schema.json" + }, + "themeCollection": { + "$ref": "#/definitions/ThemeCollection", + "description": "Define a theme (built-in and/or a custom theme) to be used for this report." + }, + "layoutOptimization": { + "$ref": "#/definitions/LayoutOptimization", + "description": "Is the report optimized for mobile consumption." + }, + "filterConfig": { + "description": "Filters that apply to the entire report (all pages and all visuals).", + "$ref": "#/definitions/FilterConfig" + }, + "objects": { + "description": "Specifies the formatting to be set for different \"objects\" of a report.", + "$ref": "#/definitions/ReportFormattingObjects" + }, + "reportSource": { + "description": "Defines how the report was created.", + "type": "string", + "anyOf": [ + { + "const": "Default", + "description": "A blank report generated by Power BI apps." + }, + { + "const": "SharePoint", + "description": "A quick create report created from a SharePointList." + }, + { + "const": "Teams", + "description": "A quick create report created from Teams." + }, + { + "const": "QuickCreate", + "description": "A quick create report created from Power BI app." + }, + { + "const": "EmbedQuickCreate", + "description": "A quick create report created from an embedded source." + }, + { + "const": "Datamart", + "description": "A new report created from Datamart." + }, + { + "const": "DataExplore", + "description": "A report generated by exporting an Exploration as a report." + } + ] + }, + "publicCustomVisuals": { + "description": "Names of the custom visuals used in this report from AppSource.", + "type": "array", + "items": { + "type": "string" + } + }, + "resourcePackages": { + "description": "Set of resources used within this report.", + "type": "array", + "items": { + "$ref": "#/definitions/ResourcePackage" + } + }, + "organizationCustomVisuals": { + "description": "Names and metadata of the organization approved custom visuals used in the report.", + "type": "array", + "items": { + "$ref": "#/definitions/OrganizationCustomVisual" + } + }, + "annotations": { + "description": "Additional information to be saved (for example comments, readme, etc) for this report.", + "type": "array", + "items": { + "$ref": "#/definitions/Annotation" + } + }, + "dataSourceVariables": { + "description": "A string containing the state of any variables from the underlying direct query data source that should be overridden when rendering this content.\nData source variables do not supply values for M parameters in the semantic model. Instead, data source variables are applied when accessing the underlying direct query source.", + "type": "string" + }, + "settings": { + "description": "Settings for the report.", + "$ref": "#/definitions/ExplorationSettings" + }, + "slowDataSourceSettings": { + "description": "Settings for slow data sources (for example turning all apply all button for filters).", + "$ref": "#/definitions/ExplorationSlowDataSourceSettings" + } + }, + "additionalProperties": false, + "required": [ + "$schema", + "layoutOptimization", + "themeCollection" + ], + "definitions": { + "ThemeCollection": { + "type": "object", + "properties": { + "baseTheme": { + "description": "Defines the base monthly release themes shipped with Power BI.", + "$ref": "#/definitions/ThemeMetadata" + }, + "customTheme": { + "description": "Defines a custom theme that is applied on top of the base theme.\nProperties not defined in the custom theme will fallback to using the base theme.", + "$ref": "#/definitions/ThemeMetadata" + } + }, + "additionalProperties": false + }, + "ThemeMetadata": { + "type": "object", + "properties": { + "name": { + "description": "Name of the theme.", + "type": "string" + }, + "reportVersionAtImport": { + "description": "Version when the theme was added to the report.", + "type": "string" + }, + "type": { + "$ref": "#/definitions/ThemeResourcePackageType", + "description": "Built-in or user specific custom theme." + } + }, + "additionalProperties": false, + "required": [ + "name", + "reportVersionAtImport", + "type" + ] + }, + "ThemeResourcePackageType": { + "type": "string", + "anyOf": [ + { + "const": "RegisteredResources", + "description": "Additional resources not bundled as part of the Power BI application." + }, + { + "const": "SharedResources", + "description": "Resources bundled as part of the Power BI applications." + } + ] + }, + "LayoutOptimization": { + "type": "string", + "anyOf": [ + { + "const": "None", + "description": "Report doesn't contain any mobile content." + }, + { + "const": "PhonePortrait", + "description": "Report has some mobile content." + } + ] + }, + "FilterConfig": { + "type": "object", + "properties": { + "filters": { + "description": "Defines the definitions and metadata for the filters.", + "type": "array", + "items": { + "$ref": "#/definitions/FilterContainer" + } + }, + "filterSortOrder": { + "description": "Defines how the filters sorted - by name or custom sorting\nIf custom sorting, then ordinal property of every filter is used as the sort order,\nfilters where ordinal is skipped will be shown at the end; ordering will fallback to display name of the field.", + "type": "string", + "anyOf": [ + { + "const": "Ascending", + "description": "Sorted ascending by display name of the filter field." + }, + { + "const": "Descending", + "description": "Sorted descending by display name of the filter field." + }, + { + "const": "Custom", + "description": "Sorted ascending by ordinal property of filters." + } + ] + } + }, + "additionalProperties": false + }, + "FilterContainer": { + "type": "object", + "properties": { + "name": { + "description": "A unique name (across the whole report definition) defined for this filter.", + "type": "string" + }, + "displayName": { + "description": "An alternate name to use when displaying this filter - by default the display name of the field will be used, if there is no field or display name,\nthen restatement of the filter will be shown. Only applies to certain filter types.", + "type": "string" + }, + "ordinal": { + "description": "Defines the ordering of this filter w.r.t. other filters - only applies when Custom sort order is set.", + "type": "number" + }, + "field": { + "description": "Defines the field from your data that is filtered.", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + }, + "type": { + "description": "The type of a filter.", + "type": "string", + "anyOf": [ + { + "const": "Categorical" + }, + { + "const": "Range" + }, + { + "const": "Advanced" + }, + { + "const": "Passthrough" + }, + { + "const": "TopN" + }, + { + "const": "Include" + }, + { + "const": "Exclude" + }, + { + "const": "RelativeDate" + }, + { + "const": "Tuple" + }, + { + "const": "RelativeTime" + }, + { + "const": "VisualTopN" + } + ] + }, + "filter": { + "description": "Defines the actual filter definition - it is dependent on the type of filter.", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/FilterDefinition" + }, + "restatement": { + "description": "A custom restatement to show for the filter - only applies to Passthrough filter type. For all other filters, a restatement is generated based on the filter definition.", + "type": "string" + }, + "howCreated": { + "description": "Specifies how this filter was first created.", + "type": "string", + "anyOf": [ + { + "const": "Auto", + "description": "Created automatically when a field is used in the visual." + }, + { + "const": "User", + "description": "Filters created from fields not used in a visual by the user." + }, + { + "const": "Drill", + "description": "Created when drilling down on a data point in a visual." + }, + { + "const": "Include", + "description": "Created by including a data point in a visual." + }, + { + "const": "Exclude", + "description": "Created by excluding a data point from a visual." + }, + { + "const": "Drillthrough", + "description": "Created by drill context that is applied to the page when using drill-through\naction from another page." + } + ] + }, + "isHiddenInViewMode": { + "description": "Defines whether to hide this filter when viewing the report.", + "type": "boolean" + }, + "isLockedInViewMode": { + "description": "Defines whether the filter value can be changed when viewing the report.", + "type": "boolean" + }, + "objects": { + "description": "Formatting for different \"objects\" of a filter card", + "$ref": "#/definitions/FilterContainerFormattingObjects" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "FilterContainerFormattingObjects": { + "type": "object", + "properties": { + "general": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/FilterContainerFormattingObjectsProperties", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + } + }, + "additionalProperties": false + }, + "FilterContainerFormattingObjectsProperties": { + "type": "object", + "properties": { + "requireSingleSelect": {}, + "isInvertedSelectionMode": {} + }, + "additionalProperties": false + }, + "ReportFormattingObjects": { + "type": "object", + "properties": { + "outspacePane": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/OutspacePane", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "section": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Section", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + } + }, + "additionalProperties": false + }, + "OutspacePane": { + "type": "object", + "properties": { + "expanded": {}, + "visible": {} + }, + "additionalProperties": false + }, + "Section": { + "type": "object", + "properties": { + "verticalAlignment": {} + }, + "additionalProperties": false + }, + "ResourcePackage": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ResourcePackageType" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcePackageItem" + } + }, + "disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "items", + "name", + "type" + ] + }, + "ResourcePackageType": { + "type": "string", + "anyOf": [ + { + "const": "CustomVisual" + }, + { + "const": "RegisteredResources" + }, + { + "const": "SharedResources" + }, + { + "const": "OrganizationalStoreCustomVisual" + } + ] + }, + "ResourcePackageItem": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ResourcePackageItemType" + } + }, + "additionalProperties": false, + "required": [ + "name", + "path", + "type" + ] + }, + "ResourcePackageItemType": { + "type": "string", + "anyOf": [ + { + "const": "CustomVisualJavascript" + }, + { + "const": "CustomVisualsCss" + }, + { + "const": "CustomVisualScreenshot" + }, + { + "const": "CustomVisualIcon" + }, + { + "const": "CustomVisualWatermark" + }, + { + "const": "CustomVisualMetadata" + }, + { + "const": "Image" + }, + { + "const": "ShapeMap" + }, + { + "const": "CustomTheme" + }, + { + "const": "BaseTheme" + }, + { + "const": "DashboardTheme" + }, + { + "const": "DashboardBaseTheme" + }, + { + "const": "HighContrastTheme" + }, + { + "const": "AppNavigation" + }, + { + "const": "AppTheme" + }, + { + "const": "AppBaseTheme" + } + ] + }, + "OrganizationCustomVisual": { + "type": "object", + "properties": { + "name": { + "description": "Name of the organization custom visual.", + "type": "string" + }, + "path": { + "description": "Path where the custom visual is stored.", + "type": "string" + }, + "disabled": { + "description": "Signifies if the custom visual is disabled by the organization.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "name", + "path" + ] + }, + "Annotation": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the annotation.", + "type": "string" + }, + "value": { + "description": "A value for this annotation.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "value" + ] + }, + "ExplorationSettings": { + "type": "object", + "properties": { + "isPersistentUserStateDisabled": { + "description": "Disable saving state of changes to a report as report viewers modify slicers and filters.", + "type": "boolean" + }, + "hideVisualContainerHeader": { + "description": "Hide visual container header in view mode of the report.", + "type": "boolean" + }, + "useStylableVisualContainerHeader": { + "description": "Use the new visual container header that is formattable.", + "type": "boolean" + }, + "exportDataMode": { + "description": "When exporting data, what should be exported.", + "type": "string", + "anyOf": [ + { + "const": "AllowSummarized", + "description": "Only allow summarized data." + }, + { + "const": "AllowSummarizedAndUnderlying", + "description": "Allow underlying and summarized data." + }, + { + "const": "None", + "description": "Don't allow exporting data." + } + ] + }, + "isReportAnnotationsDisabled": { + "description": "Commenting is disabled for this report.", + "type": "boolean" + }, + "defaultFilterActionIsDataFilter": { + "description": "When selecting data points on a visual, it will result in apply that selection as a filter instead of a highlight on other visuals.", + "type": "boolean" + }, + "defaultDrillFilterOtherVisuals": { + "description": "When another visual is drilled, if visual interactions are enabled between the two visuals, then this property specifies if that drill should be applied as a filter to this visual.\nCan be overridden by setting on individual visuals.", + "type": "boolean" + }, + "useCrossReportDrillthrough": { + "description": "Allow drill-through from other reports to this report.", + "type": "boolean" + }, + "allowChangeFilterTypes": { + "description": "Disables changing the type of filter in view mode.", + "type": "boolean" + }, + "allowInlineExploration": { + "description": "Allows personalize this visual for the report in view mode.", + "type": "boolean" + }, + "useEnhancedTooltips": { + "description": "Uses better tooltips for the visuals in this report.", + "type": "boolean" + }, + "useScaledTooltips": { + "description": "If enabled, the tooltip will scale to match canvas zoom.", + "type": "boolean" + }, + "filterPaneHiddenInEditMode": { + "description": "Hide the filter pane in view mode.", + "type": "boolean" + }, + "disableFilterPaneSearch": { + "description": "Disables the search bar in filter pane.", + "type": "boolean" + }, + "pagesPosition": { + "description": "Default location where the page navigator is shown.", + "type": "string", + "anyOf": [ + { + "const": "PagesPane", + "description": "In a pane next to the report." + }, + { + "const": "Bottom", + "description": "In a toolbar below the report." + } + ] + }, + "allowAutomatedInsightsNotification": { + "description": "Allow generating insights for the report in the background on data refresh.", + "type": "boolean" + }, + "useDefaultAggregateDisplayName": { + "description": "Show the default aggregate in display names for summarized data.", + "type": "boolean" + }, + "enableDeveloperMode": { + "description": "Enables developer mode for testing private custom visuals.", + "type": "boolean" + }, + "pauseQueries": { + "description": "Allows pausing queries while making changes to a visual, so every change doesn't trigger a query.\nParticularly useful with slow data sources.", + "type": "boolean" + }, + "queryLimitOption": { + "description": "Describes the limitations for how long and how much compute a single query can be allowed to consume.\nMore details for different options: https://learn.microsoft.com/en-us/power-bi/create-reports/desktop-set-visual-query-limits", + "type": "string", + "anyOf": [ + { + "const": "None" + }, + { + "const": "Shared" + }, + { + "const": "Premium" + }, + { + "const": "SQLServerAS" + }, + { + "const": "AzureAS" + }, + { + "const": "Custom" + }, + { + "const": "Auto" + } + ] + }, + "customMemoryLimit": { + "description": "If custom query limit is applied, this value defines the memory limit.", + "type": "string" + }, + "customTimeoutLimit": { + "description": "If custom query limit is applied, this value defines the timeout limit.", + "type": "string" + } + }, + "additionalProperties": false + }, + "ExplorationSlowDataSourceSettings": { + "type": "object", + "properties": { + "isCrossHighlightingDisabled": { + "description": "Disable cross highlights.", + "type": "boolean" + }, + "isSlicerSelectionsButtonEnabled": { + "description": "Adds 'apply' button to slicers.", + "type": "boolean" + }, + "isFilterSelectionsButtonEnabled": { + "description": "Adds 'apply' button to filters.", + "type": "boolean" + }, + "isFieldWellButtonEnabled": { + "description": "Adds 'apply' button to field changes.", + "type": "boolean" + }, + "isApplyAllButtonEnabled": { + "description": "Adds an apply all button.", + "type": "boolean" + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/fabric/item/report/definition/semanticQuery/1.1.0/schema.json b/fabric/item/report/definition/semanticQuery/1.1.0/schema.json new file mode 100644 index 0000000..6efdd1d --- /dev/null +++ b/fabric/item/report/definition/semanticQuery/1.1.0/schema.json @@ -0,0 +1,1853 @@ +{ + "$id": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/semanticQuery/1.1.0/schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Semantic Query", + "description": "Defines shared definitions for queries and filters.", + "definitions": { + "FilterDefinition": { + "description": "Defines a filter element as a partial query structure", + "type": "object", + "properties": { + "Version": { + "description": "Version of the query", + "type": "number", + "const": 2 + }, + "From": { + "description": "Set of tables from which the data will be picked.", + "type": "array", + "items": { + "$ref": "#/definitions/EntitySource" + } + }, + "Where": { + "description": "Set of filters to apply to the data.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + } + }, + "additionalProperties": false, + "required": [ + "From", + "Where" + ] + }, + "QueryFilter": { + "type": "object", + "properties": { + "Target": { + "description": "Set of expressions over which the condition applies. Applied to the set of all non-aggregate, non-measure expressions in the Select if not specified.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "Condition": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Condition to apply to the target. Must be an expression that evaluates to a boolean." + }, + "Annotations": { + "description": "Auxillary metadata for this filter.", + "type": "object", + "additionalProperties": {} + } + }, + "additionalProperties": false, + "required": [ + "Condition" + ] + }, + "QueryExpressionContainer": { + "description": "Holds a single expression and associated metadata.\nName, NativeReferenceName, and Annotations may be specified for any expression.\nEach other property represents a specific type of expression and exactly one of these other properties must be specified.", + "type": "object", + "properties": { + "Name": { + "description": "The name by which the expression can be referenced", + "type": "string" + }, + "NativeReferenceName": { + "description": "The name by which the expression can be referenced in native expressions.", + "type": "string" + }, + "Annotations": { + "description": "Auxiliary metadata for this expression.", + "type": "object", + "additionalProperties": {} + }, + "SourceRef": { + "description": "The SourceRef element contains an expression which is reference to a source table in the query or the data.", + "anyOf": [ + { + "$ref": "#/definitions/StandaloneSourceRefExpression" + }, + { + "$ref": "#/definitions/QuerySourceRefExpression" + } + ] + }, + "Column": { + "description": "The Column element contains an expression which is a reference to a column in a source table.", + "$ref": "#/definitions/QueryColumnExpression" + }, + "Measure": { + "description": "The Measure element contains an expression which is a reference to a measure in a source table.", + "$ref": "#/definitions/QueryMeasureExpression" + }, + "Min": { + "description": "The Min element contains an expression whose min aggregation needs to be computed.", + "$ref": "#/definitions/QueryMinExpression" + }, + "Max": { + "description": "The Max element contains an expression whose max aggregation needs to be computed.", + "$ref": "#/definitions/QueryMaxExpression" + }, + "Aggregation": { + "description": "The Aggregation element contains an expression which is an aggregation of an expression.", + "$ref": "#/definitions/QueryAggregationExpression" + }, + "Percentile": { + "description": "The Percentile element contains an expression which computes a percentile of an expression.", + "$ref": "#/definitions/QueryPercentileExpression" + }, + "Hierarchy": { + "description": "Hierarchy is an element which represents a reference to a hierarchy in a source table.", + "$ref": "#/definitions/QueryHierarchyExpression" + }, + "HierarchyLevel": { + "description": "HierarchyLevel is an element which represents a reference to a hierarchy level in a hierarchy.", + "$ref": "#/definitions/QueryHierarchyLevelExpression" + }, + "PropertyVariationSource": { + "description": "PropertyVariationSource is an element which represents a reference to a source of variations associated with a property.", + "$ref": "#/definitions/QueryPropertyVariationSourceExpression" + }, + "Subquery": { + "description": "Subquery is an element which holds a query.", + "$ref": "#/definitions/QuerySubqueryExpression" + }, + "Discretize": { + "description": "Transforms a continuous space of numerical values into a discrete space of numerical values.", + "$ref": "#/definitions/QueryDiscretizeExpression" + }, + "And": { + "description": "The And element contains an expression which represents an \"and\" between two expressions that evaluate to a boolean value.", + "$ref": "#/definitions/QueryBinaryExpression" + }, + "Between": { + "description": "The Between element contains an expression which is a comparison between an expression and two bounds.", + "$ref": "#/definitions/QueryBetweenExpression" + }, + "In": { + "description": "The In element contains an expression which is a comparison between an ordered list of expressions and a set of ordered lists of values.\nIf the tuple defined in Expressions matches any tuple defined in Values, then In returns true.", + "$ref": "#/definitions/QueryInExpression" + }, + "Or": { + "description": "The And element contains an expression which represents an \"or\" between two expressions that evaluate to a boolean value.", + "$ref": "#/definitions/QueryBinaryExpression" + }, + "Comparison": { + "description": "The Comparison element contains an expression which is a comparison between two expressions.", + "$ref": "#/definitions/QueryComparisonExpression" + }, + "Not": { + "description": "The Not element contains an expression which represents a \"not\" of an expression that evaluate to a boolean value.", + "$ref": "#/definitions/QueryNotExpression" + }, + "Contains": { + "description": "The Contains element contains an expression which is a \"contains\" comparison between two expressions.\nThe operation is case insensitive and accent sensitive.", + "$ref": "#/definitions/QueryContainsExpression" + }, + "StartsWith": { + "description": "The StartsWith element contains an expression which is a \"starts with\" comparison between two expressions.", + "$ref": "#/definitions/QueryStartsWithExpression" + }, + "Exists": { + "description": "The Exists element contains an expression which represents confirming the existence of at least one instance of an expression.", + "$ref": "#/definitions/QueryExistsExpression" + }, + "Literal": { + "description": "The Literal element contains an expression which is a literal value.", + "$ref": "#/definitions/QueryLiteralExpression" + }, + "DateSpan": { + "description": "The DateSpan element contains an expression which is a datespan calculation of an expression.\nA DateSpan can be compared directly to a Date via Comparison or Between.", + "$ref": "#/definitions/QueryDateSpanExpression" + }, + "DateAdd": { + "description": "The DateAdd element contains an expression which is a dateadd calculation of an expression.", + "$ref": "#/definitions/QueryDateAddExpression" + }, + "Now": { + "description": "The Now element contains an expression which returns the current date and time.", + "$ref": "#/definitions/QueryNowExpression" + }, + "DefaultValue": { + "description": "The DefaultValue element represents the model-defined default value for a column.\nIt may only be used as the Right expression in a Comparison expression with a ComparisonKind of Equal.", + "$ref": "#/definitions/QueryDefaultValueExpression" + }, + "AnyValue": { + "description": "The AnyValue element represents a wildcard value that will match any value in a column.\nIt may only be used as the Right expression in a Comparison expression with a ComparisonKind of Equal.", + "$ref": "#/definitions/QueryAnyValueExpression" + }, + "Arithmetic": { + "description": "The Arithmetic element contains an expression which is an arithmetic operation on two expressions.", + "$ref": "#/definitions/QueryArithmeticExpression" + }, + "Floor": { + "description": "The Floor element represents an operation to round the specified expression toward zero to a multiple of the specified size.", + "$ref": "#/definitions/QueryFloorExpression" + }, + "ScopedEval": { + "description": "ScopedEval is an element which evaluates an expression in a specified scope.", + "$ref": "#/definitions/QueryScopedEvalExpression" + }, + "FilteredEval": { + "description": "The FilteredEval element contains a set of filters to apply to the measure.", + "$ref": "#/definitions/QueryFilteredEvalExpression" + }, + "TransformTableRef": { + "description": "The TransformTableRef element contains an expression which is reference to a TransformTable in the query.", + "$ref": "#/definitions/QueryTransformTableRefExpression" + }, + "TransformOutputRoleRef": { + "description": "The TransformOutputRoleRef element contains an expression which is reference to a column produced by a Transform algorithm.\nThe reference is resolved by the Role attached to the output column by the transform.", + "$ref": "#/definitions/QueryTransformOutputRoleRefExpression" + }, + "SparklineData": { + "description": "Used to represent the data behind a sparkline. The data returned will be JSON formatted X/Y value pairs.", + "$ref": "#/definitions/QuerySparklineDataExpression" + }, + "NativeVisualCalculation": { + "description": "The NativeVisualCalculation element represents invocation of an expression defined using an expression in an underlying query language.\nThe expression should be invoked in the Visual Calculation Context for this query.", + "$ref": "#/definitions/QueryNativeVisualCalc" + }, + "FillRule": { + "description": "The FillRule element represents an operation to apply a dynamic fill operation.", + "$ref": "#/definitions/QueryFillRuleExpression" + }, + "GroupRef": { + "description": "The GroupRef element contains an expression which is a reference to a model grouping column.", + "$ref": "#/definitions/QueryGroupRefExpression" + }, + "ResourcePackageItem": { + "description": "The ResourcePackageItem element contains an expression which references a ResourcePackage item.", + "$ref": "#/definitions/QueryResourcePackageItem" + }, + "RoleRef": { + "description": "The RoleRef element contains an expression which is a reference to a named Role defined by a Visual.", + "$ref": "#/definitions/QueryRoleRefExpression" + }, + "SummaryValueRef": { + "description": "The SumaryValueRef element contains an expression which is a reference to a summary value in Insights Summary.", + "$ref": "#/definitions/QuerySummaryValueRefExpression" + }, + "AllRolesRef": { + "description": "The AllRolesRef element is used to reference all the roles in a visual.", + "$ref": "#/definitions/QueryAllRolesRefExpression" + }, + "SelectRef": { + "description": "The SelectRef element contains an expression which is a reference to a named item in the select clause of the query.", + "$ref": "#/definitions/QuerySelectRefExpression" + }, + "ThemeDataColor": { + "description": "The ThemeDataColor element represents an operation to select a color from a theme.", + "$ref": "#/definitions/QueryThemeDataColorExpression" + }, + "Conditional": { + "description": "The Conditional element represents an operation to select between several possible cases or an optional default.", + "$ref": "#/definitions/QueryConditionalExpression" + }, + "NativeMeasure": { + "description": "The NativeMeasure element represents invocation of a measure defined using an expression in an underlying query language.", + "$ref": "#/definitions/QueryNativeMeasure" + }, + "NativeColumn": { + "description": "The NativeColumn element represents invocation of a column defined using an expression in an underlying query language.", + "$ref": "#/definitions/QueryNativeColumn" + }, + "VisualTopN": { + "description": "The VisualTopN element represents a type of filter that limits the amount of data points returned in a query", + "$ref": "#/definitions/QueryVisualTopNExpression" + } + }, + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "SourceRef" + ] + }, + { + "required": [ + "Column" + ] + }, + { + "required": [ + "Measure" + ] + }, + { + "required": [ + "Min" + ] + }, + { + "required": [ + "Max" + ] + }, + { + "required": [ + "Aggregation" + ] + }, + { + "required": [ + "Percentile" + ] + }, + { + "required": [ + "Hierarchy" + ] + }, + { + "required": [ + "HierarchyLevel" + ] + }, + { + "required": [ + "PropertyVariationSource" + ] + }, + { + "required": [ + "Subquery" + ] + }, + { + "required": [ + "Discretize" + ] + }, + { + "required": [ + "And" + ] + }, + { + "required": [ + "Between" + ] + }, + { + "required": [ + "In" + ] + }, + { + "required": [ + "Or" + ] + }, + { + "required": [ + "Comparison" + ] + }, + { + "required": [ + "Not" + ] + }, + { + "required": [ + "Contains" + ] + }, + { + "required": [ + "StartsWith" + ] + }, + { + "required": [ + "Exists" + ] + }, + { + "required": [ + "Literal" + ] + }, + { + "required": [ + "DateSpan" + ] + }, + { + "required": [ + "DateAdd" + ] + }, + { + "required": [ + "Now" + ] + }, + { + "required": [ + "DefaultValue" + ] + }, + { + "required": [ + "AnyValue" + ] + }, + { + "required": [ + "Arithmetic" + ] + }, + { + "required": [ + "Floor" + ] + }, + { + "required": [ + "ScopedEval" + ] + }, + { + "required": [ + "FilteredEval" + ] + }, + { + "required": [ + "TransformTableRef" + ] + }, + { + "required": [ + "TransformOutputRoleRef" + ] + }, + { + "required": [ + "SparklineData" + ] + }, + { + "required": [ + "NativeVisualCalculation" + ] + }, + { + "required": [ + "FillRule" + ] + }, + { + "required": [ + "GroupRef" + ] + }, + { + "required": [ + "ResourcePackageItem" + ] + }, + { + "required": [ + "RoleRef" + ] + }, + { + "required": [ + "SummaryValueRef" + ] + }, + { + "required": [ + "AllRolesRef" + ] + }, + { + "required": [ + "SelectRef" + ] + }, + { + "required": [ + "ThemeDataColor" + ] + }, + { + "required": [ + "Conditional" + ] + }, + { + "required": [ + "NativeMeasure" + ] + }, + { + "required": [ + "NativeColumn" + ] + }, + { + "required": [ + "VisualTopN" + ] + } + ] + }, + "QueryVisualTopNExpression": { + "type": "object", + "properties": { + "ItemCount": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "ItemCount" + ] + }, + "QueryNativeColumn": { + "type": "object", + "properties": { + "DataType": { + "description": "The expected result data type of the native expression.", + "type": "number" + }, + "Expression": { + "description": "The expression to evaluate.", + "type": "string" + }, + "Language": { + "description": "The name of the underlying query language used to define Expression.", + "type": "string" + }, + "Source": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Defines the table that this column should be considered as part of." + }, + "ExpressionContentCache": { + "description": "Holds metadata about the expression content.", + "$ref": "#/definitions/QueryExpressionContentCache" + }, + "ProposedName": { + "description": "The preferred name that should be used if the expression needs to be associated with a name in order to be evaluated.", + "type": "string" + }, + "Format": { + "description": "The format string that should be applied to the result of evaluating the expression.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DataType", + "Expression", + "Language", + "Source" + ] + }, + "QueryExpressionContentCache": { + "type": "object", + "properties": { + "Dependencies": { + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "UnrecognizedIdentifiers": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "QueryNativeMeasure": { + "type": "object", + "properties": { + "DataType": { + "description": "The expected result data type of the native expression.", + "type": "number" + }, + "Expression": { + "description": "The expression to evaluate.", + "type": "string" + }, + "Language": { + "description": "The name of the underlying query language used to define Expression.", + "type": "string", + "const": "dax" + }, + "ExpressionContentCache": { + "description": "Holds metadata about the expression content.", + "$ref": "#/definitions/QueryExpressionContentCache" + }, + "ProposedName": { + "description": "The preferred name that should be used if the expression needs to be associated with a name in order to be evaluated.", + "type": "string" + }, + "Format": { + "description": "The format string that should be applied to the result of evaluating the expression.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DataType", + "Expression", + "Language" + ] + }, + "QueryConditionalExpression": { + "type": "object", + "properties": { + "Cases": { + "description": "Cases are considered in the specified order.\nThe result is the Case.Value of the first case where Case.Condition evaluates to true.\nIf no Case.Condition evaluates to true, the result is the DefaultValue, if DefaultValue is specified.\nOtherwise, the result is null.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryCase" + } + }, + "DefaultValue": { + "description": "An optional value to return when no case evaluates to true.", + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "additionalProperties": false, + "required": [ + "Cases" + ] + }, + "QueryCase": { + "type": "object", + "properties": { + "Condition": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "An expression producing a boolean indicating whether or not to match this Case." + }, + "Value": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "An expression producing the result when this case is matched." + } + }, + "additionalProperties": false, + "required": [ + "Condition", + "Value" + ] + }, + "QueryThemeDataColorExpression": { + "type": "object", + "properties": { + "ColorId": { + "description": "The theme color to select.", + "type": "number" + }, + "Percent": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "ColorId", + "Percent" + ] + }, + "QuerySelectRefExpression": { + "type": "object", + "properties": { + "ExpressionName": { + "description": "The Name of the ExpressionContainer from Select of the QueryDefinition.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ExpressionName" + ] + }, + "QueryAllRolesRefExpression": { + "type": "object", + "additionalProperties": false + }, + "QuerySummaryValueRefExpression": { + "type": "object", + "properties": { + "Name": { + "description": "The Name of the summary value within a summary template.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "QueryRoleRefExpression": { + "type": "object", + "properties": { + "Role": { + "description": "The Name of the desired Role within a Visual.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Role" + ] + }, + "QueryResourcePackageItem": { + "type": "object", + "properties": { + "PackageName": { + "description": "Identifies the ResourcePackage.", + "type": "string" + }, + "PackageType": { + "description": "Identifies the type of resource package.", + "type": "number" + }, + "ItemName": { + "description": "Identifies the item within the resource package", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ItemName", + "PackageName", + "PackageType" + ] + }, + "QueryGroupRefExpression": { + "type": "object", + "properties": { + "GroupedColumns": { + "description": "The underlying columns for the desired grouping.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Reference to the source table containing the property. Must be a SourceRef, PropertyVariationSource, or TransformTableRef expression." + }, + "Property": { + "description": "The name of the target property in the source.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "GroupedColumns", + "Property" + ] + }, + "QueryFillRuleExpression": { + "type": "object", + "properties": { + "Input": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "The expression providing the input value to the rule." + }, + "FillRule": { + "description": "Describes the algorithm, and associated parameters, needed to convert the Input into the desired fill." + } + }, + "additionalProperties": false, + "required": [ + "FillRule", + "Input" + ] + }, + "QueryNativeVisualCalc": { + "type": "object", + "properties": { + "Language": { + "description": "The name of the underlying query language that is used to define Expression (i.e., \"Dax\").", + "type": "string", + "const": "dax" + }, + "Expression": { + "description": "The expression to be evaluated.", + "type": "string" + }, + "Name": { + "description": "The name of the calculation", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Language", + "Name" + ] + }, + "QuerySparklineDataExpression": { + "type": "object", + "properties": { + "Measure": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "The measure to compute sparkline data for." + }, + "Groupings": { + "description": "The granularity at which to evaluate the measure.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "PointsPerSparkline": { + "description": "Number of points per sparkline", + "type": "number", + "const": 52 + } + }, + "additionalProperties": false, + "required": [ + "Groupings", + "Measure" + ] + }, + "QueryTransformOutputRoleRefExpression": { + "type": "object", + "properties": { + "Role": { + "description": "The Role of the target column.", + "type": "string" + }, + "Transform": { + "description": "The Name of the target Transform. This must be omitted when used to define a column in the output table of a Transform.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Role" + ] + }, + "QueryTransformTableRefExpression": { + "type": "object", + "properties": { + "Source": { + "description": "The Name of the target table.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Source" + ] + }, + "QueryFilteredEvalExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "The expression over which the condition applies. Must be a scalar." + }, + "Filters": { + "description": "List of filters to apply to the measure.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Filters" + ] + }, + "QueryScopedEvalExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression to evaluate in the new scope." + }, + "Scope": { + "description": "Set of expressions defining the new scope. These expressions can only be Columns.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Scope" + ] + }, + "QueryFloorExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression to round" + }, + "Size": { + "description": "Describes the desired multiple for rounding.\n- TimeUnit is specified: the expression is rounded to a Size multiples of the specified TimeUnit.\n- TimeUnit is omitted: the expression is rounded to a multiple of Size.", + "type": "number" + }, + "TimeUnit": { + "description": "The desired unit of rounding for Date/Time values.", + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "Day" + }, + { + "const": 1, + "description": "Week" + }, + { + "const": 2, + "description": "Month" + }, + { + "const": 3, + "description": "Year" + }, + { + "const": 4, + "description": "Decade" + }, + { + "const": 5, + "description": "Second" + }, + { + "const": 6, + "description": "Minute" + }, + { + "const": 7, + "description": "Hour" + } + ] + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Size" + ] + }, + "QueryArithmeticExpression": { + "type": "object", + "properties": { + "Left": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "First operand expression" + }, + "Right": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Second operand expression" + }, + "Operator": { + "$ref": "#/definitions/ArithmeticOperatorKind", + "description": "The arithmetic operation to perform" + } + }, + "additionalProperties": false, + "required": [ + "Left", + "Operator", + "Right" + ] + }, + "ArithmeticOperatorKind": { + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "Add" + }, + { + "const": 1, + "description": "Subtract" + }, + { + "const": 2, + "description": "Multiple" + }, + { + "const": 3, + "description": "Divide" + } + ] + }, + "QueryAnyValueExpression": { + "type": "object", + "properties": { + "DefaultValueOverridesAncestors": { + "description": "When true, any interaction with the a model-specified default value override results in all attribute relationship path ancestors being overridden.", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "QueryDefaultValueExpression": { + "type": "object", + "additionalProperties": false + }, + "QueryNowExpression": { + "type": "object", + "additionalProperties": false + }, + "QueryDateAddExpression": { + "type": "object", + "properties": { + "Amount": { + "description": "Number of units to add to the date.", + "type": "number" + }, + "TimeUnit": { + "$ref": "#/definitions/TimeUnit", + "description": "Unit of time to add to the date." + }, + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression to which to add." + } + }, + "additionalProperties": false, + "required": [ + "Amount", + "Expression", + "TimeUnit" + ] + }, + "TimeUnit": { + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "Day" + }, + { + "const": 1, + "description": "Week" + }, + { + "const": 2, + "description": "Month" + }, + { + "const": 3, + "description": "Year" + }, + { + "const": 4, + "description": "Decade" + }, + { + "const": 5, + "description": "Second" + }, + { + "const": 6, + "description": "Minute" + }, + { + "const": 7, + "description": "Hour" + } + ] + }, + "QueryDateSpanExpression": { + "type": "object", + "properties": { + "TimeUnit": { + "$ref": "#/definitions/TimeUnit", + "description": "Unit of time used for datespan function." + }, + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression to which to apply the datespan function." + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "TimeUnit" + ] + }, + "QueryLiteralExpression": { + "type": "object", + "properties": { + "Value": { + "description": "The value of the literal.\n- Boolean: \"true\"\n- DateTime: \"datetime'YYYY-MM-DDThh:mm:ss.ffffff\"\n- Decimal: \"2.4M\"\n- Double: \"2.4D\"\n- Integer: \"24L\"\n- Number: \"\"\n- Null: \"null\"\n- String: \"some string value\"", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value" + ] + }, + "QueryExistsExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression to verify there exists at least one instance of. Must be a SourceRef expression." + } + }, + "additionalProperties": false, + "required": [ + "Expression" + ] + }, + "QueryStartsWithExpression": { + "type": "object", + "properties": { + "Left": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "First expression to which to apply the operator." + }, + "Right": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Second expression to which to apply the operator." + } + }, + "additionalProperties": false, + "required": [ + "Left", + "Right" + ] + }, + "QueryContainsExpression": { + "type": "object", + "properties": { + "Left": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "First expression to which to apply the operator." + }, + "Right": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Second expression to which to apply the operator." + } + }, + "additionalProperties": false, + "required": [ + "Left", + "Right" + ] + }, + "QueryNotExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression to negate. Must be an expression that evaluates to a boolean value." + } + }, + "additionalProperties": false, + "required": [ + "Expression" + ] + }, + "QueryComparisonExpression": { + "type": "object", + "properties": { + "ComparisonKind": { + "$ref": "#/definitions/QueryComparisonKind", + "description": "Type of the comparison." + }, + "Left": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "First expression to which to apply the operator." + }, + "Right": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Second expression to which to apply the operator." + } + }, + "additionalProperties": false, + "required": [ + "ComparisonKind", + "Left", + "Right" + ] + }, + "QueryComparisonKind": { + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "Equal" + }, + { + "const": 1, + "description": "GreaterThan" + }, + { + "const": 2, + "description": "GreaterThanOrEqual" + }, + { + "const": 3, + "description": "LessThan" + }, + { + "const": 4, + "description": "LessThanOrEqual" + } + ] + }, + "QueryBinaryExpression": { + "type": "object", + "properties": { + "Left": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "First expression to which to apply the operator." + }, + "Right": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Second expression to which to apply the operator." + } + }, + "additionalProperties": false, + "required": [ + "Left", + "Right" + ] + }, + "QueryInExpression": { + "type": "object", + "properties": { + "Expressions": { + "description": "The tuple of expressions to compare.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "Values": { + "description": "The tuples of values to compare with the expressions.", + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + } + }, + "Table": { + "description": "An expression, which must be a SourceRef, holding a table to compare against the Expressions.\nThe number of columns in the table must match the number of Expressions.\nEach row in the table is considered a tuple to be matched against the expressions.", + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "additionalProperties": false, + "required": [ + "Expressions" + ] + }, + "QueryBetweenExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression to compare." + }, + "LowerBound": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Lower (inclusive) bound for the value of the expression." + }, + "UpperBound": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Upper (inclusive) bound for the value of the expression." + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "LowerBound", + "UpperBound" + ] + }, + "QueryDiscretizeExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "The expression to be discretized." + }, + "Count": { + "description": "The number of discrete values to result from the transformation.", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "Count", + "Expression" + ] + }, + "QuerySubqueryExpression": { + "type": "object", + "properties": { + "Query": { + "$ref": "#/definitions/QueryDefinition", + "description": "The query to evaluate." + } + }, + "additionalProperties": false, + "required": [ + "Query" + ] + }, + "QueryDefinition": { + "description": "Defines a query to be executed.", + "type": "object", + "properties": { + "Version": { + "description": "Version of the query", + "type": "number", + "const": 2 + }, + "From": { + "description": "Set of tables from which the data will be picked.", + "type": "array", + "items": { + "$ref": "#/definitions/EntitySource" + } + }, + "Where": { + "description": "Set of filters to apply to the data.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + }, + "OrderBy": { + "description": "List of expressions over which to sort the results.", + "type": "array", + "items": { + "$ref": "#/definitions/QuerySortClause" + } + }, + "Select": { + "description": "List of expressions to display in the results.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "VisualShape": { + "description": "Provides metadata information about the structure and state of the visualization.", + "type": "array", + "items": { + "$ref": "#/definitions/Axis" + } + }, + "GroupBy": { + "description": "List of expressions that represent the items to group by.\nThese additional groupings can be columns that we don't project or entity tables.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "Transform": { + "description": "List of table manipulation operations to apply within the query.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryTransform" + } + }, + "Top": { + "description": "When specified, the query will return up to the specified number of rows based on the specified OrderBy.", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "From", + "Select" + ] + }, + "QueryTransform": { + "type": "object", + "properties": { + "Name": { + "description": "The name used to refer to this transform in other parts of the query.\nThis name must be unique across all other Transform.Name values in this query.", + "type": "string" + }, + "Algorithm": { + "description": "The algorithm to apply.", + "type": "string" + }, + "Input": { + "$ref": "#/definitions/QueryTransformInput", + "description": "Describes the information needed to invoke the transform." + }, + "Output": { + "$ref": "#/definitions/QueryTransformOutput", + "description": "Describes the expected results from the invoked transform." + } + }, + "additionalProperties": false, + "required": [ + "Algorithm", + "Input", + "Name", + "Output" + ] + }, + "QueryTransformOutput": { + "type": "object", + "properties": { + "Table": { + "description": "The structure of the data produced by the transform.", + "$ref": "#/definitions/QueryTransformTable" + } + }, + "additionalProperties": false + }, + "QueryTransformTable": { + "type": "object", + "properties": { + "Name": { + "description": "Name by which the transform is referenced in the query.\nThis name must be unique across all other TransformTable.Name values in the query.", + "type": "string" + }, + "Columns": { + "description": "The columns that make up this table.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryTransformTableColumn" + } + } + }, + "additionalProperties": false, + "required": [ + "Columns", + "Name" + ] + }, + "QueryTransformTableColumn": { + "type": "object", + "properties": { + "Role": { + "description": "An arbitrary string used to identify this column to the transform algorithm. Role may not be unique.", + "type": "string" + }, + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "The expression defining this column. ExpressionContainer.Name property defines the name of the column.\nExpressionContainer.Name is required and must be unique across all other columns in this table." + } + }, + "additionalProperties": false, + "required": [ + "Expression" + ] + }, + "QueryTransformInput": { + "type": "object", + "properties": { + "Parameters": { + "description": "Parameters to be supplied when invoking the algorithm", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "Table": { + "description": "The structure of the table of data passed to the transform.", + "$ref": "#/definitions/QueryTransformTable" + } + }, + "additionalProperties": false, + "required": [ + "Parameters" + ] + }, + "Axis": { + "type": "object", + "properties": { + "Groups": { + "description": "Ordered list of hierarchical groupings in this axis.", + "type": "array", + "items": { + "$ref": "#/definitions/AxisGroup" + } + }, + "Name": { + "description": "Name by which the axis is referenced in the query.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Groups", + "Name" + ] + }, + "AxisGroup": { + "type": "object", + "properties": { + "Keys": { + "description": "List of expressions that define the keys of this group.", + "type": "array", + "items": { + "$ref": "#/definitions/QueryExpressionContainer" + } + }, + "Subtotal": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "Keys", + "Subtotal" + ] + }, + "QuerySortClause": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression over which to sort the results." + }, + "Direction": { + "description": "Indicates the direction to sort." + } + }, + "additionalProperties": false, + "required": [ + "Direction", + "Expression" + ] + }, + "EntitySource": { + "type": "object", + "properties": { + "Name": { + "description": "Name by which the table is referenced in the query", + "type": "string" + }, + "Entity": { + "description": "Reference name of the table in the data.", + "type": "string" + }, + "Schema": { + "description": "Identifier for the schema which contains the entity source. This can be omitted if the Schema name is the default.", + "type": "string" + }, + "Expression": { + "description": "An expression that produces a table. Mandatory if Type is Expression.", + "$ref": "#/definitions/QueryExpressionContainer" + }, + "Type": { + "description": "Type of entity source - defaults to Table (0)", + "default": 0, + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "The EntitySource is a reference to a table in the underlying model." + }, + { + "const": 1, + "description": "The EntitySource is a presentation data object such as a report page or visual." + }, + { + "const": 2, + "description": "The EntitySource is a table produced by the specified expression." + } + ] + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "QueryPropertyVariationSourceExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Reference to the source property containing the property variation source. Must be a SourceRef expression." + }, + "Name": { + "description": "The name of the target variation source in the property.", + "type": "string" + }, + "Property": { + "description": "The name of the target property in the SourceRef.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Name", + "Property" + ] + }, + "QueryHierarchyLevelExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Reference to the hierarchy containing the level. Must be a Hierarchy expression." + }, + "Level": { + "description": "The name of the target level in the hierarchy.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Level" + ] + }, + "QueryHierarchyExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Reference to the source table containing the hierarchy. Must be a SourceRef or a PropertyVariationSource expression." + }, + "Hierarchy": { + "description": "The name of the target hierarchy in the source.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Hierarchy" + ] + }, + "QueryPercentileExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "The expression to be evaluated for the percentile." + }, + "K": { + "description": "The desired percentile value.\n- Exclusive is true: K must be between 0 and 1, exclusive.\n- Exclusive is false: K must be between 0 and 1, inclusive.", + "type": "number" + }, + "Exclusive": { + "description": "Indicates whether an inclusive or exclusive percentile should be computed.", + "default": false, + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "K" + ] + }, + "QueryAggregationExpression": { + "type": "object", + "properties": { + "Function": { + "$ref": "#/definitions/QueryAggregateFunction", + "description": "Type of the aggregation." + }, + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression to aggregate." + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Function" + ] + }, + "QueryAggregateFunction": { + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "Sum" + }, + { + "const": 1, + "description": "Average" + }, + { + "const": 2, + "description": "Distinct count" + }, + { + "const": 3, + "description": "Min" + }, + { + "const": 4, + "description": "Max" + }, + { + "const": 5, + "description": "Count number of non-null values" + }, + { + "const": 6, + "description": "Median" + }, + { + "const": 7, + "description": "StandardDeviation" + }, + { + "const": 8, + "description": "Variance" + } + ] + }, + "QueryMaxExpression": { + "type": "object", + "properties": { + "IncludeAllTypes": { + "$ref": "#/definitions/IncludeAllTypes", + "description": "Defines how variant types should be treated." + }, + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression whose min will be computed." + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "IncludeAllTypes" + ] + }, + "IncludeAllTypes": { + "description": "Argument for QueryMinExpression and QueryMaxExpression to decide behavior for variant types.", + "type": "number", + "anyOf": [ + { + "const": 0, + "description": "Exclude non-numeric types if the Expression returns mixed typed values." + }, + { + "const": 1, + "description": "Include non-numeric types if the Expression returns mixed typed values if the model supports it. otherwise, fallback to Default behavior." + }, + { + "const": 2, + "description": "Include non-numeric types if the Expression returns mixed typed value. raise an error if the model does not support this." + } + ] + }, + "QueryMinExpression": { + "type": "object", + "properties": { + "IncludeAllTypes": { + "$ref": "#/definitions/IncludeAllTypes", + "description": "Defines how variant types should be treated." + }, + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Expression whose min will be computed." + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "IncludeAllTypes" + ] + }, + "QueryMeasureExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Reference to the source table containing the property. Must be a SourceRef, PropertyVariationSource, or TransformTableRef expression." + }, + "Property": { + "description": "The name of the target property in the source.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Property" + ] + }, + "QueryColumnExpression": { + "type": "object", + "properties": { + "Expression": { + "$ref": "#/definitions/QueryExpressionContainer", + "description": "Reference to the source table containing the property. Must be a SourceRef, PropertyVariationSource, or TransformTableRef expression." + }, + "Property": { + "description": "The name of the target property in the source.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Expression", + "Property" + ] + }, + "QuerySourceRefExpression": { + "type": "object", + "properties": { + "Source": { + "description": "Name of the source table in a query.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Source" + ] + }, + "StandaloneSourceRefExpression": { + "type": "object", + "properties": { + "Schema": { + "description": "The name of the schema containing the referenced entity - can be omitted if optional.", + "type": "string" + }, + "Entity": { + "description": "Name of the referenced entity from your data.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity" + ] + } + } +} \ No newline at end of file diff --git a/fabric/item/report/definition/visualContainer/1.1.0/schema.json b/fabric/item/report/definition/visualContainer/1.1.0/schema.json new file mode 100644 index 0000000..e0dfd57 --- /dev/null +++ b/fabric/item/report/definition/visualContainer/1.1.0/schema.json @@ -0,0 +1,1397 @@ +{ + "$id": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/1.1.0/schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Visual container", + "description": "Defines a single visual or visual group on a report page.", + "type": "object", + "properties": { + "$schema": { + "description": "Defines the schema to use for an item.", + "type": "string", + "const": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainer/1.1.0/schema.json" + }, + "name": { + "description": "A unique identifier for the visual across the whole page.", + "maxLength": 50, + "type": "string" + }, + "position": { + "$ref": "#/definitions/VisualContainerPosition", + "description": "Defines where the visual is position on the page and how big it should be, along\nwith z-index (stacking) for that visual.\nAlso defines the order in which visuals are navigated when using just keyboard (tabOrder)." + }, + "visual": { + "description": "Defines a chart to be shown inside of this container.", + "$ref": "#/definitions/VisualConfig" + }, + "visualGroup": { + "description": "Defines that this container should be used as a grouping container.", + "$ref": "#/definitions/VisualGroupConfig" + }, + "parentGroupName": { + "description": "Name of the parent group (visual container), if it is part of one.", + "type": "string" + }, + "filterConfig": { + "description": "Filters that apply to all this visual - on top of the filters defined for the report and page.", + "$ref": "#/definitions/FilterConfig" + }, + "isHidden": { + "description": "Marks the visual as hidden.", + "type": "boolean" + }, + "annotations": { + "description": "Additional information to be saved (for example comments, readme, etc) for this visual.", + "type": "array", + "items": { + "$ref": "#/definitions/Annotation" + } + }, + "howCreated": { + "description": "Source of creation of this visual.", + "type": "string", + "anyOf": [ + { + "const": "Default", + "description": "Used when it doesn't fall in any of the buckets below." + }, + { + "const": "Copilot", + "description": "Created by copilot." + }, + { + "const": "CheckboxTickedInFieldList", + "description": "Selecting data from field list." + }, + { + "const": "DraggedToCanvas", + "description": "Dragging data from field list to the canvas." + }, + { + "const": "VisualTypeIconClicked", + "description": "Clicking a specific visual icon in visualizations list." + }, + { + "const": "DraggedToFieldWell", + "description": "Dragging data from field list to field wells." + }, + { + "const": "InsertVisualButton", + "description": "Clicking the \"Insert visual\" button in ribbon." + }, + { + "const": "WhatIfParameterControl", + "description": "Automatically by what-if parameter." + }, + { + "const": "QnaAppBar", + "description": "Ask a question in app bar." + }, + { + "const": "QnaDoubleClick", + "description": "Double clicking on the canvas to generate a Q&A visual." + }, + { + "const": "QnaKeyboardShortcut", + "description": "Use keyboard shortcut for Q&A visual." + }, + { + "const": "FieldParameterControl", + "description": "Automatically by field parameters." + }, + { + "const": "CanvasBackgroundContextMenu", + "description": "Using on-object context menu for the canvas." + }, + { + "const": "ContextMenuPaste", + "description": "By using paste from context manu." + }, + { + "const": "CopyPaste", + "description": "By using copy paste." + }, + { + "const": "SummarizeVisualContainer", + "description": "By using context menu Summarize." + } + ] + } + }, + "additionalProperties": false, + "required": [ + "$schema", + "name", + "position" + ], + "definitions": { + "VisualContainerPosition": { + "type": "object", + "properties": { + "x": { + "description": "Horizontal position of the left edge of the visual.\nShould be between 0 and width of the containing page.", + "type": "number" + }, + "y": { + "description": "Vertical position of the top edge of the visual.\nShould be between 0 and height of the containing page.", + "type": "number" + }, + "z": { + "description": "Defines the stacking order for the visual.\nHigher z-index visuals are shown on top of the lower ones.", + "type": "number" + }, + "height": { + "description": "Height of the visual.\ny + height should be less than the height of the containing page.", + "type": "number" + }, + "width": { + "description": "Width of the visual.\nx + width should be less than the width of the containing page.", + "type": "number" + }, + "tabOrder": { + "description": "Defines the selection order for this visual when using keyboard (tab key)\nto navigate the visuals on the containing page.", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "height", + "width", + "x", + "y" + ] + }, + "VisualConfig": { + "type": "object", + "properties": { + "visualType": { + "description": "Name of the visual.", + "type": "string" + }, + "autoSelectVisualType": { + "description": "VisualType is automatically picked by the system based on the data used in the visual.", + "type": "boolean" + }, + "query": { + "description": "Defines the data to be plotted in the visual.", + "$ref": "#/definitions/Query" + }, + "expansionStates": { + "description": "Defines the specific data points that are expanded.", + "type": "array", + "items": { + "$ref": "#/definitions/ExpansionState" + } + }, + "objects": { + "description": "Specifies the formatting to be set for different \"objects\" of the visual.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/DataViewObjectDefinitions" + }, + "visualContainerObjects": { + "description": "Specifies the formatting to be set for different \"objects\" of the container.", + "$ref": "#/definitions/VisualContainerFormattingObjects" + }, + "syncGroup": { + "description": "Defines the sync group that this visual is part of.\nOnly applies to slicer visuals.", + "$ref": "#/definitions/VisualSyncGroup" + }, + "drillFilterOtherVisuals": { + "description": "When another visual is drilled, if visual interactions are enabled between the two visuals,\nthen this property specifies if that drill should be applied as a filter to this visual.\nOverrides the default setting of the report.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "visualType" + ] + }, + "Query": { + "type": "object", + "properties": { + "sortDefinition": { + "description": "Defines how the data should be sorted in a visual", + "$ref": "#/definitions/SortDefinition" + }, + "options": { + "description": "Specific options to apply when running the query. Applies to certain visuals only.", + "$ref": "#/definitions/VisualQueryOptions" + }, + "queryState": { + "description": "Describes how the data should be arranged and used in the visual.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ProjectionState" + } + }, + "isDrillDisabled": { + "description": "Should drill be allowed in the visual - only used by specific custom visuals.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "queryState" + ] + }, + "SortDefinition": { + "type": "object", + "properties": { + "sort": { + "description": "Defines the fields the data is sorted by.", + "type": "array", + "items": { + "$ref": "#/definitions/QuerySort" + } + }, + "isDefaultSort": { + "description": "If the sort if explicitly set by user, then this will be false, Power BI can update the sort to match\nthe visual in this case.", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "QuerySort": { + "type": "object", + "properties": { + "field": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer", + "description": "Field to sort by" + }, + "direction": { + "$ref": "#/definitions/SortDirection", + "description": "Direction of sort - ascending or descending." + } + }, + "additionalProperties": false, + "required": [ + "direction", + "field" + ] + }, + "SortDirection": { + "type": "string", + "anyOf": [ + { + "const": "Ascending", + "description": "Sort smallest to biggest." + }, + { + "const": "Descending", + "description": "Sort biggest to smallest." + } + ] + }, + "VisualQueryOptions": { + "type": "object", + "properties": { + "allowBinnedLineSample": { + "description": "A better sampling for line charts.", + "type": "boolean" + }, + "allowOverlappingPointsSample": { + "description": "A better sampling for scatter charts.", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ProjectionState": { + "type": "object", + "properties": { + "showAll": { + "description": "Show all values for all fields in this projection.", + "type": "boolean" + }, + "projections": { + "description": "Defines the fields and their properties for this visual role.", + "type": "array", + "items": { + "$ref": "#/definitions/RoleProjection" + } + }, + "fieldParameters": { + "description": "Defines any field parameters used as projections.", + "type": "array", + "items": { + "$ref": "#/definitions/RoleFieldParameter" + } + } + }, + "additionalProperties": false, + "required": [ + "projections" + ] + }, + "RoleProjection": { + "type": "object", + "properties": { + "field": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer", + "description": "The data field from the semantic model." + }, + "queryRef": { + "description": "A unique name for this field - unique per visual.", + "type": "string" + }, + "nativeQueryRef": { + "description": "Native reference name for this field - unique per visual, used for referencing fields in visual calculations.", + "type": "string" + }, + "displayName": { + "description": "An override for display name - by default it is the field name in the semantic model.", + "type": "string" + }, + "format": { + "description": "format string scoped to the visual.", + "type": "string" + }, + "active": { + "description": "Is the field currently active in the visual - used as part of drill operations.", + "type": "boolean" + }, + "hidden": { + "description": "Is the field visible in the visual - used as part of visual calculations.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "field", + "queryRef" + ] + }, + "RoleFieldParameter": { + "type": "object", + "properties": { + "parameterExpr": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer", + "description": "Defines the parameter field." + }, + "index": { + "description": "Index at which parameter fields begin in the projections list.", + "type": "number" + }, + "length": { + "description": "Number of fields replaced by the parameter in the projections list.", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "index", + "parameterExpr" + ] + }, + "ExpansionState": { + "type": "object", + "properties": { + "roles": { + "description": "Visual roles (projection names) that have individual points expanded.", + "type": "array", + "items": { + "type": "string" + } + }, + "root": { + "description": "Defines the specific values that are expanded for each field in the hierarchy", + "$ref": "#/definitions/RootExpansionState" + }, + "levels": { + "description": "Describes the fields participating in the expansion", + "type": "array", + "items": { + "$ref": "#/definitions/LevelExpansionState" + } + } + }, + "additionalProperties": false, + "required": [ + "roles" + ] + }, + "RootExpansionState": { + "type": "object", + "properties": { + "identityValues": { + "description": "Describes the instances that are expanded.\nOptional for the root expansion state.\nMust by Literal expressions.", + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + }, + "isToggled": { + "description": "True if the value is expanded.", + "default": false, + "type": "boolean" + }, + "children": { + "description": "Child values in the hierarchy that are expanded", + "type": "array", + "items": { + "$ref": "#/definitions/NodeExpansionState" + } + } + }, + "additionalProperties": false + }, + "NodeExpansionState": { + "type": "object", + "properties": { + "identityValues": { + "description": "Describes the instances that are expanded.\nMust by Literal expressions.", + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + }, + "isToggled": { + "description": "True if the value is expanded.", + "default": false, + "type": "boolean" + }, + "children": { + "description": "Child values in the hierarchy that are expanded", + "type": "array", + "items": { + "$ref": "#/definitions/NodeExpansionState" + } + } + }, + "additionalProperties": false, + "required": [ + "identityValues" + ] + }, + "LevelExpansionState": { + "type": "object", + "properties": { + "identityKeys": { + "description": "Describes the fields in the visual.", + "type": "array", + "items": { + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + } + }, + "isCollapsed": { + "description": "True if the entire field isn't expanded (i.e. false if only specific instances are expanded).", + "type": "boolean" + }, + "queryRefs": { + "description": "Which fields in the query does this relate to - must match a queryRef in the query.", + "type": "array", + "items": { + "type": "string" + } + }, + "isPinned": { + "description": "Is the field pinned.", + "type": "boolean" + }, + "isLocked": { + "description": "Is the field locked (used for decomposition tree)", + "type": "boolean" + }, + "AIInformation": { + "description": "More information about how the expansion is done (used for decomposition tree)", + "$ref": "#/definitions/AILevelInformation" + } + }, + "additionalProperties": false, + "required": [ + "queryRefs" + ] + }, + "AILevelInformation": { + "type": "object", + "properties": { + "method": { + "$ref": "#/definitions/AIDecompositionMethod", + "description": "Type of expansion." + }, + "disabled": { + "description": "Is the level disabled.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "method" + ] + }, + "AIDecompositionMethod": { + "enum": [ + "BestSplit", + "MaxSplit", + "MinSplit" + ], + "type": "string" + }, + "VisualContainerFormattingObjects": { + "type": "object", + "properties": { + "title": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Title", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "subTitle": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/SubTitle", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "divider": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Divider", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "spacing": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Spacing", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "background": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Background", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "padding": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Padding", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "lockAspect": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/LockAspect", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "general": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualContainerGeneralFormattingObjects", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "border": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Border", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "dropShadow": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/DropShadow", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "visualLink": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualLink", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "visualTooltip": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualTooltip", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "stylePreset": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/StylePreset", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "visualHeader": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualHeader", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "visualHeaderTooltip": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualHeaderTooltip", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + } + }, + "additionalProperties": false + }, + "Title": { + "type": "object", + "properties": { + "show": {}, + "text": {}, + "heading": {}, + "titleWrap": {}, + "fontColor": {}, + "background": {}, + "alignment": {}, + "fontSize": {}, + "bold": {}, + "italic": {}, + "underline": {}, + "fontFamily": {} + }, + "additionalProperties": false + }, + "SubTitle": { + "type": "object", + "properties": { + "show": {}, + "text": {}, + "heading": {}, + "titleWrap": {}, + "fontColor": {}, + "alignment": {}, + "fontSize": {}, + "bold": {}, + "italic": {}, + "underline": {}, + "fontFamily": {} + }, + "additionalProperties": false + }, + "Divider": { + "type": "object", + "properties": { + "ignorePadding": {}, + "show": {}, + "color": {}, + "width": {}, + "style": {} + }, + "additionalProperties": false + }, + "Spacing": { + "type": "object", + "properties": { + "customizeSpacing": {}, + "verticalSpacing": {}, + "spaceBelowTitle": {}, + "spaceBelowSubTitle": {}, + "spaceBelowTitleArea": {} + }, + "additionalProperties": false + }, + "Background": { + "type": "object", + "properties": { + "show": {}, + "color": {}, + "transparency": {} + }, + "additionalProperties": false + }, + "Padding": { + "type": "object", + "properties": { + "top": {}, + "bottom": {}, + "left": {}, + "right": {} + }, + "additionalProperties": false + }, + "LockAspect": { + "type": "object", + "properties": { + "show": {} + }, + "additionalProperties": false + }, + "VisualContainerGeneralFormattingObjects": { + "type": "object", + "properties": { + "x": {}, + "y": {}, + "width": {}, + "height": {}, + "altText": {}, + "allowBinnedLineSample": {}, + "allowOverlappingPointsSample": {}, + "keepLayerOrder": {} + }, + "additionalProperties": false + }, + "Border": { + "type": "object", + "properties": { + "show": {}, + "color": {}, + "radius": {}, + "width": {} + }, + "additionalProperties": false + }, + "DropShadow": { + "type": "object", + "properties": { + "show": {}, + "preset": {}, + "position": {}, + "color": {}, + "transparency": {}, + "shadowSpread": {}, + "shadowBlur": {}, + "angle": {}, + "shadowDistance": {} + }, + "additionalProperties": false + }, + "VisualLink": { + "type": "object", + "properties": { + "show": {}, + "type": {}, + "bookmark": {}, + "disabledTooltip": {}, + "drillthroughSection": {}, + "enabledTooltip": {}, + "qna": {}, + "suppressDefaultTooltip": {}, + "showDefaultTooltip": {}, + "navigationSection": {}, + "tooltip": {}, + "tooltipPlaceholderText": {}, + "webUrl": {} + }, + "additionalProperties": false + }, + "VisualTooltip": { + "type": "object", + "properties": { + "show": {}, + "type": {}, + "section": {}, + "titleFontColor": {}, + "valueFontColor": {}, + "fontSize": {}, + "bold": {}, + "italic": {}, + "underline": {}, + "fontFamily": {}, + "background": {}, + "transparency": {}, + "actionFontColor": {}, + "themedTitleFontColor": {}, + "themedBackground": {}, + "themedValueFontColor": {} + }, + "additionalProperties": false + }, + "StylePreset": { + "type": "object", + "properties": { + "name": {} + }, + "additionalProperties": false + }, + "VisualHeader": { + "type": "object", + "properties": { + "show": {}, + "background": {}, + "border": {}, + "transparency": {}, + "foreground": {}, + "showVisualInformationButton": {}, + "showVisualWarningButton": {}, + "showVisualErrorButton": {}, + "showDrillRoleSelector": {}, + "showDrillUpButton": {}, + "showDrillToggleButton": {}, + "showDrillDownLevelButton": {}, + "showDrillDownExpandButton": {}, + "showPinButton": {}, + "showFilterRestatementButton": {}, + "showFocusModeButton": {}, + "showCopyVisualImageButton": {}, + "showSeeDataLayoutToggleButton": {}, + "showOptionsMenu": {}, + "showCommentButton": {}, + "showTooltipButton": {}, + "showPersonalizeVisualButton": {}, + "showSmartNarrativeButton": {}, + "showSetAlertButton": {}, + "showFollowVisualButton": {} + }, + "additionalProperties": false + }, + "VisualHeaderTooltip": { + "type": "object", + "properties": { + "type": {}, + "section": {}, + "text": {}, + "titleFontColor": {}, + "fontSize": {}, + "fontFamily": {}, + "bold": {}, + "italic": {}, + "underline": {}, + "background": {}, + "transparency": {}, + "themedTitleFontColor": {}, + "themedBackground": {} + }, + "additionalProperties": false + }, + "VisualSyncGroup": { + "type": "object", + "properties": { + "groupName": { + "description": "Unique name for the sync group.", + "type": "string" + }, + "fieldChanges": { + "description": "Should synced visuals update when fields change.", + "type": "boolean" + }, + "filterChanges": { + "description": "Should synced visuals update when filters change.", + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "groupName" + ] + }, + "VisualGroupConfig": { + "type": "object", + "properties": { + "displayName": { + "description": "Display name for the group.", + "type": "string" + }, + "groupMode": { + "$ref": "#/definitions/GroupLayoutMode", + "description": "Defines how the visuals are organized inside this group." + }, + "objects": { + "description": "Specifies the formatting to be set for different \"objects\" of this group.", + "$ref": "#/definitions/VisualGroupFormattingObjects" + } + }, + "additionalProperties": false, + "required": [ + "displayName", + "groupMode" + ] + }, + "GroupLayoutMode": { + "type": "string", + "anyOf": [ + { + "const": "ScaleMode", + "description": "Visuals are scaled as group resizes to preserve the aspect ratio and avoid scrolling." + }, + { + "const": "ScrollMode", + "description": "Visuals are not resized, if the containing box for group is smaller than the space\nneeded for visuals, then scrollbar is added." + } + ] + }, + "VisualGroupFormattingObjects": { + "type": "object", + "properties": { + "background": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Background", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "lockAspect": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/LockAspect", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "general": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualGroupGeneralFormattingObjects", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + } + }, + "additionalProperties": false + }, + "VisualGroupGeneralFormattingObjects": { + "type": "object", + "properties": { + "x": {}, + "y": {}, + "width": {}, + "height": {}, + "altText": {} + }, + "additionalProperties": false + }, + "FilterConfig": { + "type": "object", + "properties": { + "filters": { + "description": "Defines the definitions and metadata for the filters.", + "type": "array", + "items": { + "$ref": "#/definitions/FilterContainer" + } + }, + "filterSortOrder": { + "description": "Defines how the filters sorted - by name or custom sorting\nIf custom sorting, then ordinal property of every filter is used as the sort order,\nfilters where ordinal is skipped will be shown at the end; ordering will fallback to display name of the field.", + "type": "string", + "anyOf": [ + { + "const": "Ascending", + "description": "Sorted ascending by display name of the filter field." + }, + { + "const": "Descending", + "description": "Sorted descending by display name of the filter field." + }, + { + "const": "Custom", + "description": "Sorted ascending by ordinal property of filters." + } + ] + } + }, + "additionalProperties": false + }, + "FilterContainer": { + "type": "object", + "properties": { + "name": { + "description": "A unique name (across the whole report definition) defined for this filter.", + "type": "string" + }, + "displayName": { + "description": "An alternate name to use when displaying this filter - by default the display name of the field will be used, if there is no field or display name,\nthen restatement of the filter will be shown. Only applies to certain filter types.", + "type": "string" + }, + "ordinal": { + "description": "Defines the ordering of this filter w.r.t. other filters - only applies when Custom sort order is set.", + "type": "number" + }, + "field": { + "description": "Defines the field from your data that is filtered.", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/QueryExpressionContainer" + }, + "type": { + "description": "The type of a filter.", + "type": "string", + "anyOf": [ + { + "const": "Categorical" + }, + { + "const": "Range" + }, + { + "const": "Advanced" + }, + { + "const": "Passthrough" + }, + { + "const": "TopN" + }, + { + "const": "Include" + }, + { + "const": "Exclude" + }, + { + "const": "RelativeDate" + }, + { + "const": "Tuple" + }, + { + "const": "RelativeTime" + }, + { + "const": "VisualTopN" + } + ] + }, + "filter": { + "description": "Defines the actual filter definition - it is dependent on the type of filter.", + "$ref": "../../semanticQuery/1.1.0/schema.json#/definitions/FilterDefinition" + }, + "restatement": { + "description": "A custom restatement to show for the filter - only applies to Passthrough filter type. For all other filters, a restatement is generated based on the filter definition.", + "type": "string" + }, + "howCreated": { + "description": "Specifies how this filter was first created.", + "type": "string", + "anyOf": [ + { + "const": "Auto", + "description": "Created automatically when a field is used in the visual." + }, + { + "const": "User", + "description": "Filters created from fields not used in a visual by the user." + }, + { + "const": "Drill", + "description": "Created when drilling down on a data point in a visual." + }, + { + "const": "Include", + "description": "Created by including a data point in a visual." + }, + { + "const": "Exclude", + "description": "Created by excluding a data point from a visual." + }, + { + "const": "Drillthrough", + "description": "Created by drill context that is applied to the page when using drill-through\naction from another page." + } + ] + }, + "isHiddenInViewMode": { + "description": "Defines whether to hide this filter when viewing the report.", + "type": "boolean" + }, + "isLockedInViewMode": { + "description": "Defines whether the filter value can be changed when viewing the report.", + "type": "boolean" + }, + "objects": { + "description": "Formatting for different \"objects\" of a filter card", + "$ref": "#/definitions/FilterContainerFormattingObjects" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "FilterContainerFormattingObjects": { + "type": "object", + "properties": { + "general": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/FilterContainerFormattingObjectsProperties", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + } + }, + "additionalProperties": false + }, + "FilterContainerFormattingObjectsProperties": { + "type": "object", + "properties": { + "requireSingleSelect": {}, + "isInvertedSelectionMode": {} + }, + "additionalProperties": false + }, + "Annotation": { + "type": "object", + "properties": { + "name": { + "description": "Unique name for the annotation.", + "type": "string" + }, + "value": { + "description": "A value for this annotation.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "value" + ] + } + }, + "oneOf": [ + { + "required": [ + "visual" + ] + }, + { + "required": [ + "visualGroup" + ] + } + ] +} \ No newline at end of file diff --git a/fabric/item/report/definition/visualContainerMobileState/1.1.0/schema.json b/fabric/item/report/definition/visualContainerMobileState/1.1.0/schema.json new file mode 100644 index 0000000..f73d32d --- /dev/null +++ b/fabric/item/report/definition/visualContainerMobileState/1.1.0/schema.json @@ -0,0 +1,595 @@ +{ + "$id": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainerMobileState/1.1.0/schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Visual container mobile state", + "description": "Defines information about a visual container's mobile layout.", + "type": "object", + "properties": { + "$schema": { + "description": "Defines the schema to use for an item.", + "type": "string", + "const": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/visualContainerMobileState/1.1.0/schema.json" + }, + "objects": { + "description": "Specifies the mobile specific formatting changes for different \"objects\" of a visual.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/DataViewObjectDefinitions" + }, + "visualContainerObjects": { + "description": "Specifies the mobile specific formatting changes for different \"objects\" of the visual container.", + "$ref": "#/definitions/VisualContainerFormattingObjects" + }, + "position": { + "$ref": "#/definitions/VisualContainerPosition", + "description": "Describes a mobile specific position for this visuals." + } + }, + "additionalProperties": false, + "required": [ + "$schema", + "position" + ], + "definitions": { + "VisualContainerFormattingObjects": { + "type": "object", + "properties": { + "title": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Title", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "subTitle": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/SubTitle", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "divider": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Divider", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "spacing": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Spacing", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "background": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Background", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "padding": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Padding", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "lockAspect": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/LockAspect", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "general": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualContainerGeneralFormattingObjects", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "border": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/Border", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "dropShadow": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/DropShadow", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "visualLink": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualLink", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "visualTooltip": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualTooltip", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "stylePreset": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/StylePreset", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "visualHeader": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualHeader", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + }, + "visualHeaderTooltip": { + "type": "array", + "items": { + "type": "object", + "properties": { + "selector": { + "description": "Defines the scope at which to apply the formatting for this object.\nCan also define rules for matching highlighted values and how multiple definitions for the same property should be ordered.", + "$ref": "../../formattingObjectDefinitions/1.1.0/schema.json#/definitions/Selector" + }, + "properties": { + "$ref": "#/definitions/VisualHeaderTooltip", + "description": "Describes the properties of the object to apply formatting changes to." + } + }, + "additionalProperties": false, + "required": [ + "properties" + ] + } + } + }, + "additionalProperties": false + }, + "Title": { + "type": "object", + "properties": { + "show": {}, + "text": {}, + "heading": {}, + "titleWrap": {}, + "fontColor": {}, + "background": {}, + "alignment": {}, + "fontSize": {}, + "bold": {}, + "italic": {}, + "underline": {}, + "fontFamily": {} + }, + "additionalProperties": false + }, + "SubTitle": { + "type": "object", + "properties": { + "show": {}, + "text": {}, + "heading": {}, + "titleWrap": {}, + "fontColor": {}, + "alignment": {}, + "fontSize": {}, + "bold": {}, + "italic": {}, + "underline": {}, + "fontFamily": {} + }, + "additionalProperties": false + }, + "Divider": { + "type": "object", + "properties": { + "ignorePadding": {}, + "show": {}, + "color": {}, + "width": {}, + "style": {} + }, + "additionalProperties": false + }, + "Spacing": { + "type": "object", + "properties": { + "customizeSpacing": {}, + "verticalSpacing": {}, + "spaceBelowTitle": {}, + "spaceBelowSubTitle": {}, + "spaceBelowTitleArea": {} + }, + "additionalProperties": false + }, + "Background": { + "type": "object", + "properties": { + "show": {}, + "color": {}, + "transparency": {} + }, + "additionalProperties": false + }, + "Padding": { + "type": "object", + "properties": { + "top": {}, + "bottom": {}, + "left": {}, + "right": {} + }, + "additionalProperties": false + }, + "LockAspect": { + "type": "object", + "properties": { + "show": {} + }, + "additionalProperties": false + }, + "VisualContainerGeneralFormattingObjects": { + "type": "object", + "properties": { + "x": {}, + "y": {}, + "width": {}, + "height": {}, + "altText": {}, + "allowBinnedLineSample": {}, + "allowOverlappingPointsSample": {}, + "keepLayerOrder": {} + }, + "additionalProperties": false + }, + "Border": { + "type": "object", + "properties": { + "show": {}, + "color": {}, + "radius": {}, + "width": {} + }, + "additionalProperties": false + }, + "DropShadow": { + "type": "object", + "properties": { + "show": {}, + "preset": {}, + "position": {}, + "color": {}, + "transparency": {}, + "shadowSpread": {}, + "shadowBlur": {}, + "angle": {}, + "shadowDistance": {} + }, + "additionalProperties": false + }, + "VisualLink": { + "type": "object", + "properties": { + "show": {}, + "type": {}, + "bookmark": {}, + "disabledTooltip": {}, + "drillthroughSection": {}, + "enabledTooltip": {}, + "qna": {}, + "suppressDefaultTooltip": {}, + "showDefaultTooltip": {}, + "navigationSection": {}, + "tooltip": {}, + "tooltipPlaceholderText": {}, + "webUrl": {} + }, + "additionalProperties": false + }, + "VisualTooltip": { + "type": "object", + "properties": { + "show": {}, + "type": {}, + "section": {}, + "titleFontColor": {}, + "valueFontColor": {}, + "fontSize": {}, + "bold": {}, + "italic": {}, + "underline": {}, + "fontFamily": {}, + "background": {}, + "transparency": {}, + "actionFontColor": {}, + "themedTitleFontColor": {}, + "themedBackground": {}, + "themedValueFontColor": {} + }, + "additionalProperties": false + }, + "StylePreset": { + "type": "object", + "properties": { + "name": {} + }, + "additionalProperties": false + }, + "VisualHeader": { + "type": "object", + "properties": { + "show": {}, + "background": {}, + "border": {}, + "transparency": {}, + "foreground": {}, + "showVisualInformationButton": {}, + "showVisualWarningButton": {}, + "showVisualErrorButton": {}, + "showDrillRoleSelector": {}, + "showDrillUpButton": {}, + "showDrillToggleButton": {}, + "showDrillDownLevelButton": {}, + "showDrillDownExpandButton": {}, + "showPinButton": {}, + "showFilterRestatementButton": {}, + "showFocusModeButton": {}, + "showCopyVisualImageButton": {}, + "showSeeDataLayoutToggleButton": {}, + "showOptionsMenu": {}, + "showCommentButton": {}, + "showTooltipButton": {}, + "showPersonalizeVisualButton": {}, + "showSmartNarrativeButton": {}, + "showSetAlertButton": {}, + "showFollowVisualButton": {} + }, + "additionalProperties": false + }, + "VisualHeaderTooltip": { + "type": "object", + "properties": { + "type": {}, + "section": {}, + "text": {}, + "titleFontColor": {}, + "fontSize": {}, + "fontFamily": {}, + "bold": {}, + "italic": {}, + "underline": {}, + "background": {}, + "transparency": {}, + "themedTitleFontColor": {}, + "themedBackground": {} + }, + "additionalProperties": false + }, + "VisualContainerPosition": { + "type": "object", + "properties": { + "x": { + "description": "Horizontal position of the left edge of the visual.\nShould be between 0 and width of the containing page.", + "type": "number" + }, + "y": { + "description": "Vertical position of the top edge of the visual.\nShould be between 0 and height of the containing page.", + "type": "number" + }, + "z": { + "description": "Defines the stacking order for the visual.\nHigher z-index visuals are shown on top of the lower ones.", + "type": "number" + }, + "height": { + "description": "Height of the visual.\ny + height should be less than the height of the containing page.", + "type": "number" + }, + "width": { + "description": "Width of the visual.\nx + width should be less than the width of the containing page.", + "type": "number" + }, + "tabOrder": { + "description": "Defines the selection order for this visual when using keyboard (tab key)\nto navigate the visuals on the containing page.", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "height", + "width", + "x", + "y" + ] + } + } +} \ No newline at end of file