@gooddata/sdk-code-schemas 11.59.0-alpha.1 → 11.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,6 +71,18 @@
71
71
  },
72
72
  "then": { "$ref": "#/$global/gaac/visualisation" }
73
73
  },
74
+ {
75
+ "if": { "properties": { "type": { "const": "report" } }, "required": ["type"] },
76
+ "then": { "$ref": "#/$global/gaac/report" }
77
+ },
78
+ {
79
+ "if": { "properties": { "type": { "const": "report_template" } }, "required": ["type"] },
80
+ "then": { "$ref": "#/$global/gaac/report_template" }
81
+ },
82
+ {
83
+ "if": { "properties": { "type": { "const": "report_page_layout" } }, "required": ["type"] },
84
+ "then": { "$ref": "#/$global/gaac/report_page_layout" }
85
+ },
74
86
  {
75
87
  "if": { "not": { "properties": { "type": { "type": "string" } }, "required": ["type"] } },
76
88
  "then": {
@@ -107,7 +119,10 @@
107
119
  "repeater_chart",
108
120
  "radar_chart",
109
121
  "attribute_hierarchy",
110
- "parameter"
122
+ "parameter",
123
+ "report",
124
+ "report_template",
125
+ "report_page_layout"
111
126
  ]
112
127
  }
113
128
  }
@@ -147,7 +162,10 @@
147
162
  "repeater_chart",
148
163
  "radar_chart",
149
164
  "attribute_hierarchy",
150
- "parameter"
165
+ "parameter",
166
+ "report",
167
+ "report_template",
168
+ "report_page_layout"
151
169
  ]
152
170
  }
153
171
  },
@@ -2605,6 +2623,160 @@
2605
2623
  "required": ["type"],
2606
2624
  "$defs": {}
2607
2625
  },
2626
+ "report": {
2627
+ "title": "Report",
2628
+ "type": "object",
2629
+ "additionalProperties": false,
2630
+ "properties": {
2631
+ "id": {
2632
+ "$ref": "#/$global/gaac/identifier",
2633
+ "description": "A unique identifier of the report.",
2634
+ "$semantic": [
2635
+ {
2636
+ "type": "uniqueness",
2637
+ "source": "report.id",
2638
+ "code": "core.uniqueness.reports.id"
2639
+ },
2640
+ { "type": "definition", "source": "report.id" }
2641
+ ]
2642
+ },
2643
+ "type": { "type": "string", "enum": ["report"] },
2644
+ "title": {
2645
+ "$ref": "#/$global/gaac/title",
2646
+ "description": "A human readable title for the report."
2647
+ },
2648
+ "description": {
2649
+ "$ref": "#/$global/gaac/description",
2650
+ "description": "An optional description of the report."
2651
+ },
2652
+ "tags": {
2653
+ "$ref": "#/$global/gaac/tags",
2654
+ "description": "A list of strings - metadata tags of this report."
2655
+ },
2656
+ "period": {
2657
+ "$ref": "#/$global/gaac/reportPeriod",
2658
+ "description": "The finished period the report covers. It is not a filter: at execution time it materializes as an absolute date filter on each visualization's date dataset, at the lowest precedence, which a visualization opts out of with ignore_report_period."
2659
+ },
2660
+ "pages": {
2661
+ "type": "array",
2662
+ "description": "Ordered pages of the report. A page is a deep copy taken when it was added, and never changes with the page layout or template it came from.",
2663
+ "items": { "$ref": "#/$global/gaac/reportPageBody" }
2664
+ },
2665
+ "filters": {
2666
+ "$ref": "#/$global/gaac/dashboardFilters",
2667
+ "description": "Report filters; pages and visualizations may extend or override them."
2668
+ },
2669
+ "variables": {
2670
+ "type": "array",
2671
+ "description": "Custom variables the report's text can interpolate as {name}. Built-in variable names win a collision.",
2672
+ "items": { "$ref": "#/$global/gaac/reportVariable" }
2673
+ },
2674
+ "variable_values": {
2675
+ "type": "object",
2676
+ "description": "Values for the declared variables, keyed by variable name. A variable with no value here falls back to its default.",
2677
+ "additionalProperties": { "type": "string" }
2678
+ }
2679
+ },
2680
+ "$semantic": { "type": "snippet", "snippets": ["report"] },
2681
+ "required": ["id", "type", "title", "period", "pages"]
2682
+ },
2683
+ "report_template": {
2684
+ "title": "ReportTemplate",
2685
+ "type": "object",
2686
+ "additionalProperties": false,
2687
+ "properties": {
2688
+ "id": {
2689
+ "$ref": "#/$global/gaac/identifier",
2690
+ "description": "A unique identifier of the report template.",
2691
+ "$semantic": [
2692
+ {
2693
+ "type": "uniqueness",
2694
+ "source": "reportTemplate.id",
2695
+ "code": "core.uniqueness.reportTemplates.id"
2696
+ },
2697
+ { "type": "definition", "source": "reportTemplate.id" }
2698
+ ]
2699
+ },
2700
+ "type": { "type": "string", "enum": ["report_template"] },
2701
+ "title": {
2702
+ "$ref": "#/$global/gaac/title",
2703
+ "description": "A human readable title for the report template."
2704
+ },
2705
+ "description": {
2706
+ "$ref": "#/$global/gaac/description",
2707
+ "description": "An optional description of the report template."
2708
+ },
2709
+ "tags": {
2710
+ "$ref": "#/$global/gaac/tags",
2711
+ "description": "A list of strings - metadata tags of this report template."
2712
+ },
2713
+ "pages": {
2714
+ "type": "array",
2715
+ "description": "Ordered pages of the template. A report created from the template deep-copies them and keeps no reference back, so the report stays frozen while the template evolves.",
2716
+ "items": { "$ref": "#/$global/gaac/reportPageBody" }
2717
+ },
2718
+ "filters": {
2719
+ "$ref": "#/$global/gaac/dashboardFilters",
2720
+ "description": "Template filters; pages and visualizations may extend or override them."
2721
+ },
2722
+ "variables": {
2723
+ "type": "array",
2724
+ "description": "Custom variables the template's text can interpolate as {name}. A report created from it gives them values.",
2725
+ "items": { "$ref": "#/$global/gaac/reportVariable" }
2726
+ }
2727
+ },
2728
+ "$semantic": { "type": "snippet", "snippets": ["report_template"] },
2729
+ "required": ["id", "type", "title", "pages"]
2730
+ },
2731
+ "report_page_layout": {
2732
+ "title": "ReportPageLayout",
2733
+ "type": "object",
2734
+ "additionalProperties": false,
2735
+ "properties": {
2736
+ "id": {
2737
+ "$ref": "#/$global/gaac/identifier",
2738
+ "description": "A unique identifier of the report page layout.",
2739
+ "$semantic": [
2740
+ {
2741
+ "type": "uniqueness",
2742
+ "source": "reportPageLayout.id",
2743
+ "code": "core.uniqueness.reportPageLayouts.id"
2744
+ },
2745
+ { "type": "definition", "source": "reportPageLayout.id" }
2746
+ ]
2747
+ },
2748
+ "type": { "type": "string", "enum": ["report_page_layout"] },
2749
+ "title": {
2750
+ "$ref": "#/$global/gaac/title",
2751
+ "description": "A human readable title for the report page layout."
2752
+ },
2753
+ "description": {
2754
+ "$ref": "#/$global/gaac/description",
2755
+ "description": "An optional description of the report page layout."
2756
+ },
2757
+ "tags": {
2758
+ "$ref": "#/$global/gaac/tags",
2759
+ "description": "A list of strings - metadata tags of this report page layout."
2760
+ },
2761
+ "kind": { "$ref": "#/$global/gaac/reportPageKind" },
2762
+ "format": { "$ref": "#/$global/gaac/reportPageFormat" },
2763
+ "style": {
2764
+ "$ref": "#/$global/gaac/reportBoxStyle",
2765
+ "description": "Paint of the page itself, behind everything the layout places."
2766
+ },
2767
+ "layout": {
2768
+ "$ref": "#/$global/gaac/reportLayoutNode",
2769
+ "description": "Root of the page layout tree."
2770
+ },
2771
+ "filters": {
2772
+ "$ref": "#/$global/gaac/dashboardFilters",
2773
+ "description": "Page filters, carried into the template and report content this page is copied into."
2774
+ }
2775
+ },
2776
+ "$semantic": { "type": "snippet", "snippets": ["report_page_layout"] },
2777
+ "required": ["id", "type", "title", "layout"],
2778
+ "description": "A reusable page. Its content fields are the same page body a report and a report template carry inline, so a field added to /gaac/reportPageBody belongs here too: JSON Schema cannot compose the two, because the page body closes itself to the entity's own id, title and tags."
2779
+ },
2608
2780
  "identifier": { "title": "Id", "type": "string", "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$" },
2609
2781
  "title": { "type": "string", "maxLength": 255 },
2610
2782
  "description": { "type": "string", "maxLength": 10000 },
@@ -2730,6 +2902,321 @@
2730
2902
  "pattern": "^fact/(?!\\.)[.A-Za-z0-9_-]{1,255}$",
2731
2903
  "$semantic": { "type": "reference", "source": "fact.id", "typePrefix": true }
2732
2904
  },
2905
+ "reportPeriod": {
2906
+ "title": "Report Period",
2907
+ "type": "object",
2908
+ "additionalProperties": false,
2909
+ "properties": {
2910
+ "start": {
2911
+ "type": "string",
2912
+ "description": "Reported period start, ISO 8601 date (YYYY-MM-DD), inclusive.",
2913
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
2914
+ },
2915
+ "end": {
2916
+ "type": "string",
2917
+ "description": "Reported period end, ISO 8601 date (YYYY-MM-DD), inclusive.",
2918
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
2919
+ }
2920
+ },
2921
+ "required": ["start", "end"]
2922
+ },
2923
+ "reportPageBody": {
2924
+ "title": "Report Page Body",
2925
+ "type": "object",
2926
+ "additionalProperties": false,
2927
+ "properties": {
2928
+ "id": {
2929
+ "$ref": "#/$global/gaac/identifier",
2930
+ "description": "An id for this page, unique within the document."
2931
+ },
2932
+ "kind": { "$ref": "#/$global/gaac/reportPageKind" },
2933
+ "format": { "$ref": "#/$global/gaac/reportPageFormat" },
2934
+ "style": {
2935
+ "$ref": "#/$global/gaac/reportBoxStyle",
2936
+ "description": "Paint of the page itself, behind everything the layout places."
2937
+ },
2938
+ "layout": {
2939
+ "$ref": "#/$global/gaac/reportLayoutNode",
2940
+ "description": "Root of the page layout."
2941
+ },
2942
+ "filters": {
2943
+ "$ref": "#/$global/gaac/dashboardFilters",
2944
+ "description": "Page filters, merged over the report's own. A filter targeting the same object replaces the inherited one; a visualization's own filters apply on top."
2945
+ }
2946
+ },
2947
+ "required": ["id", "layout"]
2948
+ },
2949
+ "reportVariable": {
2950
+ "title": "Report Variable",
2951
+ "type": "object",
2952
+ "additionalProperties": false,
2953
+ "properties": {
2954
+ "name": {
2955
+ "type": "string",
2956
+ "description": "Name the variable is referenced by from text, as {name}."
2957
+ },
2958
+ "title": { "$ref": "#/$global/gaac/title" },
2959
+ "description": { "$ref": "#/$global/gaac/description" },
2960
+ "default": {
2961
+ "type": "string",
2962
+ "description": "Value used when the report gives the variable none."
2963
+ }
2964
+ },
2965
+ "required": ["name"]
2966
+ },
2967
+ "reportBackground": {
2968
+ "title": "Report Background",
2969
+ "description": "A bare string is a color. An image is written as a mapping.",
2970
+ "oneOf": [
2971
+ { "type": "string", "description": "CSS color value painted behind the content." },
2972
+ {
2973
+ "type": "object",
2974
+ "additionalProperties": false,
2975
+ "properties": {
2976
+ "image": {
2977
+ "$ref": "#/$global/gaac/reportBackgroundImage",
2978
+ "description": "Image painted behind the content."
2979
+ }
2980
+ },
2981
+ "required": ["image"]
2982
+ }
2983
+ ]
2984
+ },
2985
+ "reportBackgroundImage": {
2986
+ "title": "Report Background Image",
2987
+ "description": "The image a box paints behind its content. It is drawn from a slot of its own, which is what keeps a backdrop fillable and gives it placeholder metadata, so it is written down with an id - or it names an image another box on the page already wrote down.",
2988
+ "oneOf": [
2989
+ {
2990
+ "type": "object",
2991
+ "additionalProperties": false,
2992
+ "properties": {
2993
+ "ref": {
2994
+ "$ref": "#/$global/gaac/identifier",
2995
+ "description": "An id of an image already written down elsewhere on this page, drawn here as well."
2996
+ }
2997
+ },
2998
+ "required": ["ref"]
2999
+ },
3000
+ {
3001
+ "type": "object",
3002
+ "additionalProperties": false,
3003
+ "not": { "required": ["url", "asset"] },
3004
+ "properties": {
3005
+ "id": { "$ref": "#/$global/gaac/reportSlotId" },
3006
+ "url": {
3007
+ "type": "string",
3008
+ "description": "Image URL, supporting {variables} - a logo uses {logo}. Mutually exclusive with asset."
3009
+ },
3010
+ "asset": {
3011
+ "$ref": "#/$global/gaac/identifier",
3012
+ "description": "Backend-managed asset rendered as the image. Mutually exclusive with url."
3013
+ },
3014
+ "alt_text": { "type": "string" },
3015
+ "fit": {
3016
+ "type": "string",
3017
+ "enum": ["contain", "cover", "fill"],
3018
+ "description": "How the image fills its area: kept whole inside it, filling it and cropped to do so, or stretched to its shape. Defaults to contain."
3019
+ },
3020
+ "style": { "$ref": "#/$global/gaac/reportImageStyle" },
3021
+ "placeholder": { "$ref": "#/$global/gaac/reportPlaceholder" }
3022
+ },
3023
+ "required": ["id"]
3024
+ }
3025
+ ]
3026
+ },
3027
+ "reportTextType": {
3028
+ "title": "Report Text Type",
3029
+ "type": "string",
3030
+ "enum": ["h1", "h2", "h3", "h4", "h5", "h6", "largeText", "normalText", "smallText"],
3031
+ "description": "Size the text is rendered at. Headings default to h1, paragraphs to normalText. The size owns the typography that goes with it; the rest of the style overrides ink and placement on top of it."
3032
+ },
3033
+ "reportAlignment": {
3034
+ "title": "Report Content Alignment",
3035
+ "type": "string",
3036
+ "enum": ["start", "center", "end"]
3037
+ },
3038
+ "reportImageStyle": {
3039
+ "title": "Report Image Style",
3040
+ "type": "object",
3041
+ "additionalProperties": false,
3042
+ "properties": {
3043
+ "horizontal_align": { "$ref": "#/$global/gaac/reportAlignment" },
3044
+ "vertical_align": { "$ref": "#/$global/gaac/reportAlignment" }
3045
+ },
3046
+ "description": "Placement overrides for the drawn image; centered on both axes by default."
3047
+ },
3048
+ "reportPlaceholder": {
3049
+ "title": "Report Slot Placeholder",
3050
+ "description": "Metadata of a slot intentionally left unfilled. A bare true marks it required; a bare string is the authoring hint.",
3051
+ "oneOf": [
3052
+ {
3053
+ "type": "boolean",
3054
+ "description": "True marks the slot required: the report is not complete until it is filled."
3055
+ },
3056
+ { "type": "string", "description": "Authoring hint shown in the empty slot." },
3057
+ {
3058
+ "type": "object",
3059
+ "additionalProperties": false,
3060
+ "properties": {
3061
+ "hint": {
3062
+ "type": "string",
3063
+ "description": "Authoring hint shown in the empty slot."
3064
+ },
3065
+ "required": {
3066
+ "type": "boolean",
3067
+ "description": "When true, a report is not considered complete until this slot is filled."
3068
+ }
3069
+ }
3070
+ }
3071
+ ]
3072
+ },
3073
+ "reportWeight": {
3074
+ "title": "Report Layout Weight",
3075
+ "type": "number",
3076
+ "description": "Fractional weight of this node inside its parent. Defaults to 1; sibling weights [2, 1] render a 2/3 + 1/3 split."
3077
+ },
3078
+ "reportLayoutNode": {
3079
+ "title": "Report Layout Node",
3080
+ "description": "A node of the page layout. A node carrying column or row splits its area along that direction; every other node draws content, told apart by the content key it carries.",
3081
+ "type": "object",
3082
+ "not": {
3083
+ "allOf": [
3084
+ { "not": { "required": ["column"] } },
3085
+ { "not": { "required": ["row"] } },
3086
+ { "not": { "required": ["visualization"] } },
3087
+ { "not": { "required": ["heading"] } },
3088
+ { "not": { "required": ["paragraph"] } },
3089
+ { "not": { "required": ["image"] } }
3090
+ ]
3091
+ },
3092
+ "allOf": [
3093
+ { "if": { "required": ["column"] }, "then": { "$ref": "#/$defs/layoutColumn" } },
3094
+ { "if": { "required": ["row"] }, "then": { "$ref": "#/$defs/layoutRow" } },
3095
+ {
3096
+ "if": { "required": ["visualization"] },
3097
+ "then": { "$ref": "#/$defs/visualizationSlot" }
3098
+ },
3099
+ { "if": { "required": ["heading"] }, "then": { "$ref": "#/$defs/headingSlot" } },
3100
+ { "if": { "required": ["paragraph"] }, "then": { "$ref": "#/$defs/paragraphSlot" } },
3101
+ { "if": { "required": ["image"] }, "then": { "$ref": "#/$defs/imageSlot" } }
3102
+ ]
3103
+ },
3104
+ "reportBoxStyle": {
3105
+ "title": "Report Box Style",
3106
+ "type": "object",
3107
+ "additionalProperties": false,
3108
+ "properties": {
3109
+ "background": {
3110
+ "$ref": "#/$global/gaac/reportBackground",
3111
+ "description": "What the box paints behind its content."
3112
+ },
3113
+ "border_radius": {
3114
+ "type": "number",
3115
+ "description": "Corner radius in percent of the page width. Content reaching into a rounded corner is clipped."
3116
+ },
3117
+ "padding": {
3118
+ "type": "number",
3119
+ "description": "Inset of the box's own content, in percent of the page width. Insets only inward."
3120
+ }
3121
+ }
3122
+ },
3123
+ "reportSlotId": {
3124
+ "$ref": "#/$global/gaac/identifier",
3125
+ "description": "An id for this area, unique within the page. It is what a report fills when it takes this page from a template, so an id written down here survives edits to the layout around it."
3126
+ },
3127
+ "reportText": {
3128
+ "title": "Report Text",
3129
+ "description": "A bare string is the text itself. AI-written text is a mapping carrying the prompt and the generation it produced.",
3130
+ "oneOf": [
3131
+ {
3132
+ "type": "string",
3133
+ "description": "Markdown with {variable} placeholders, resolved at render time."
3134
+ },
3135
+ {
3136
+ "type": "object",
3137
+ "additionalProperties": false,
3138
+ "properties": {
3139
+ "text": {
3140
+ "type": "string",
3141
+ "description": "Markdown with {variable} placeholders. Alongside a prompt this is the materialized generation, stored so the report renders without re-invoking AI."
3142
+ },
3143
+ "prompt": {
3144
+ "type": "string",
3145
+ "description": "Instruction for the generator. Its presence makes this an AI-written text; supports {variables}."
3146
+ },
3147
+ "generated_at": {
3148
+ "type": "string",
3149
+ "description": "ISO 8601 timestamp of the stored generation. Only meaningful alongside a prompt."
3150
+ }
3151
+ }
3152
+ }
3153
+ ]
3154
+ },
3155
+ "reportTextStyle": {
3156
+ "title": "Report Text Style",
3157
+ "description": "A bare string is the text type. Anything more is written as a mapping.",
3158
+ "oneOf": [
3159
+ { "$ref": "#/$global/gaac/reportTextType" },
3160
+ {
3161
+ "type": "object",
3162
+ "additionalProperties": false,
3163
+ "properties": {
3164
+ "type": { "$ref": "#/$global/gaac/reportTextType" },
3165
+ "color": { "type": "string", "description": "CSS color value of the text." },
3166
+ "horizontal_align": { "$ref": "#/$global/gaac/reportAlignment" },
3167
+ "vertical_align": { "$ref": "#/$global/gaac/reportAlignment" },
3168
+ "background": { "$ref": "#/$global/gaac/reportBackground" },
3169
+ "border_radius": { "type": "number" },
3170
+ "padding": { "type": "number" }
3171
+ }
3172
+ }
3173
+ ]
3174
+ },
3175
+ "reportImage": {
3176
+ "title": "Report Image",
3177
+ "description": "A bare string is the image URL. Anything more is written as a mapping. The id belongs to whatever draws the image, not to the image itself.",
3178
+ "oneOf": [
3179
+ {
3180
+ "type": "string",
3181
+ "description": "Image URL, supporting {variables} - a logo uses {logo}."
3182
+ },
3183
+ {
3184
+ "type": "object",
3185
+ "additionalProperties": false,
3186
+ "not": { "required": ["url", "asset"] },
3187
+ "properties": {
3188
+ "url": {
3189
+ "type": "string",
3190
+ "description": "Image URL, supporting {variables} - a logo uses {logo}. Mutually exclusive with asset."
3191
+ },
3192
+ "asset": {
3193
+ "$ref": "#/$global/gaac/identifier",
3194
+ "description": "Backend-managed asset rendered as the image. Mutually exclusive with url."
3195
+ },
3196
+ "alt_text": { "type": "string" },
3197
+ "fit": {
3198
+ "type": "string",
3199
+ "enum": ["contain", "cover", "fill"],
3200
+ "description": "How the image fills its area: kept whole inside it, filling it and cropped to do so, or stretched to its shape. Defaults to contain."
3201
+ },
3202
+ "style": { "$ref": "#/$global/gaac/reportImageStyle" },
3203
+ "placeholder": { "$ref": "#/$global/gaac/reportPlaceholder" }
3204
+ }
3205
+ }
3206
+ ]
3207
+ },
3208
+ "reportPageKind": {
3209
+ "title": "Report Page Kind",
3210
+ "type": "string",
3211
+ "enum": ["cover", "section", "content"],
3212
+ "description": "Editor hint only, for template galleries, default styling and AI context. Geometry always comes from the layout."
3213
+ },
3214
+ "reportPageFormat": {
3215
+ "title": "Report Page Format",
3216
+ "type": "string",
3217
+ "enum": ["widescreen", "a4Portrait", "letterPortrait"],
3218
+ "description": "Page proportions the layout was authored for. Defaults to widescreen."
3219
+ },
2733
3220
  "query": {
2734
3221
  "$schema": "http://json-schema.org/draft-07/schema#",
2735
3222
  "title": "Query",
@@ -7341,6 +7828,295 @@
7341
7828
  },
7342
7829
  "required": ["type", "metrics", "direction"]
7343
7830
  },
7831
+ "report": {
7832
+ "title": "Report",
7833
+ "type": "object",
7834
+ "additionalProperties": false,
7835
+ "properties": {
7836
+ "id": {
7837
+ "$ref": "#/$global/gaac/identifier",
7838
+ "description": "A unique identifier of the report.",
7839
+ "$semantic": [
7840
+ { "type": "uniqueness", "source": "report.id", "code": "core.uniqueness.reports.id" },
7841
+ { "type": "definition", "source": "report.id" }
7842
+ ]
7843
+ },
7844
+ "type": { "type": "string", "enum": ["report"] },
7845
+ "title": {
7846
+ "$ref": "#/$global/gaac/title",
7847
+ "description": "A human readable title for the report."
7848
+ },
7849
+ "description": {
7850
+ "$ref": "#/$global/gaac/description",
7851
+ "description": "An optional description of the report."
7852
+ },
7853
+ "tags": {
7854
+ "$ref": "#/$global/gaac/tags",
7855
+ "description": "A list of strings - metadata tags of this report."
7856
+ },
7857
+ "period": {
7858
+ "$ref": "#/$global/gaac/reportPeriod",
7859
+ "description": "The finished period the report covers. It is not a filter: at execution time it materializes as an absolute date filter on each visualization's date dataset, at the lowest precedence, which a visualization opts out of with ignore_report_period."
7860
+ },
7861
+ "pages": {
7862
+ "type": "array",
7863
+ "description": "Ordered pages of the report. A page is a deep copy taken when it was added, and never changes with the page layout or template it came from.",
7864
+ "items": { "$ref": "#/$global/gaac/reportPageBody" }
7865
+ },
7866
+ "filters": {
7867
+ "$ref": "#/$global/gaac/dashboardFilters",
7868
+ "description": "Report filters; pages and visualizations may extend or override them."
7869
+ },
7870
+ "variables": {
7871
+ "type": "array",
7872
+ "description": "Custom variables the report's text can interpolate as {name}. Built-in variable names win a collision.",
7873
+ "items": { "$ref": "#/$global/gaac/reportVariable" }
7874
+ },
7875
+ "variable_values": {
7876
+ "type": "object",
7877
+ "description": "Values for the declared variables, keyed by variable name. A variable with no value here falls back to its default.",
7878
+ "additionalProperties": { "type": "string" }
7879
+ }
7880
+ },
7881
+ "$semantic": { "type": "snippet", "snippets": ["report"] },
7882
+ "required": ["id", "type", "title", "period", "pages"]
7883
+ },
7884
+ "layoutColumn": {
7885
+ "title": "Report Layout Column",
7886
+ "type": "object",
7887
+ "additionalProperties": false,
7888
+ "properties": {
7889
+ "weight": { "$ref": "#/$global/gaac/reportWeight" },
7890
+ "column": {
7891
+ "type": "array",
7892
+ "description": "Children laid out vertically.",
7893
+ "items": { "$ref": "#/$global/gaac/reportLayoutNode" }
7894
+ },
7895
+ "style": {
7896
+ "$ref": "#/$global/gaac/reportBoxStyle",
7897
+ "description": "Paint of this container's box. Never affects how children are laid out."
7898
+ }
7899
+ },
7900
+ "required": ["column"]
7901
+ },
7902
+ "layoutRow": {
7903
+ "title": "Report Layout Row",
7904
+ "type": "object",
7905
+ "additionalProperties": false,
7906
+ "properties": {
7907
+ "weight": { "$ref": "#/$global/gaac/reportWeight" },
7908
+ "row": {
7909
+ "type": "array",
7910
+ "description": "Children laid out horizontally.",
7911
+ "items": { "$ref": "#/$global/gaac/reportLayoutNode" }
7912
+ },
7913
+ "style": {
7914
+ "$ref": "#/$global/gaac/reportBoxStyle",
7915
+ "description": "Paint of this container's box. Never affects how children are laid out."
7916
+ }
7917
+ },
7918
+ "required": ["row"]
7919
+ },
7920
+ "visualizationSlot": {
7921
+ "title": "Report Visualization Slot",
7922
+ "type": "object",
7923
+ "additionalProperties": false,
7924
+ "properties": {
7925
+ "id": { "$ref": "#/$global/gaac/reportSlotId" },
7926
+ "weight": { "$ref": "#/$global/gaac/reportWeight" },
7927
+ "visualization": {
7928
+ "type": ["string", "null"],
7929
+ "description": "An id of the visualization to be rendered in this area. Null leaves the area declared but empty, which renders a placeholder.",
7930
+ "$semantic": { "type": "reference", "source": "visualisation.id" }
7931
+ },
7932
+ "title": {
7933
+ "description": "Title rendered above the visualization; supports {variables}. False hides it.",
7934
+ "oneOf": [{ "type": "string" }, { "type": "boolean", "enum": [false] }]
7935
+ },
7936
+ "show_title": {
7937
+ "type": "boolean",
7938
+ "description": "Whether the title is rendered. Only needed to hide a title that is kept written down; a title of false hides it and drops the text."
7939
+ },
7940
+ "properties": {
7941
+ "type": "object",
7942
+ "description": "Visualization properties overriding the insight's own."
7943
+ },
7944
+ "date": {
7945
+ "$ref": "#/$global/gaac/identifier",
7946
+ "description": "An id of the date dataset the report's period is applied to as an absolute date filter. Omitted leaves the backend date dataset resolution to decide.",
7947
+ "$semantic": { "type": "reference", "source": "dateDataset.id" }
7948
+ },
7949
+ "ignore_report_period": {
7950
+ "type": "boolean",
7951
+ "description": "When true, the implicit date filter derived from the report's period is not applied here."
7952
+ },
7953
+ "filters": {
7954
+ "$ref": "#/$global/gaac/dashboardFilters",
7955
+ "description": "Filters applied on top of the effective page and report filters. A filter targeting the same object replaces the inherited one."
7956
+ },
7957
+ "ignored_filters": {
7958
+ "type": "array",
7959
+ "description": "A list of report and page filters ignored here.",
7960
+ "items": {
7961
+ "type": "string",
7962
+ "description": "An id of the label, attribute, computed attribute, metric or date to be ignored",
7963
+ "$semantic": {
7964
+ "type": "reference",
7965
+ "sources": [
7966
+ "dateDataset.id",
7967
+ "attribute.id",
7968
+ "label.id",
7969
+ "computedAttribute.id",
7970
+ "metric.id"
7971
+ ]
7972
+ }
7973
+ }
7974
+ },
7975
+ "placeholder": { "$ref": "#/$global/gaac/reportPlaceholder" }
7976
+ },
7977
+ "required": ["id", "visualization"]
7978
+ },
7979
+ "headingSlot": {
7980
+ "title": "Report Heading Slot",
7981
+ "type": "object",
7982
+ "additionalProperties": false,
7983
+ "properties": {
7984
+ "id": { "$ref": "#/$global/gaac/reportSlotId" },
7985
+ "weight": { "$ref": "#/$global/gaac/reportWeight" },
7986
+ "heading": {
7987
+ "$ref": "#/$global/gaac/reportText",
7988
+ "description": "A line of display text. It carries no markup of its own: what is typed in it is what it renders."
7989
+ },
7990
+ "style": { "$ref": "#/$global/gaac/reportTextStyle" },
7991
+ "placeholder": { "$ref": "#/$global/gaac/reportPlaceholder" }
7992
+ },
7993
+ "required": ["id", "heading"]
7994
+ },
7995
+ "paragraphSlot": {
7996
+ "title": "Report Paragraph Slot",
7997
+ "type": "object",
7998
+ "additionalProperties": false,
7999
+ "properties": {
8000
+ "id": { "$ref": "#/$global/gaac/reportSlotId" },
8001
+ "weight": { "$ref": "#/$global/gaac/reportWeight" },
8002
+ "paragraph": {
8003
+ "$ref": "#/$global/gaac/reportText",
8004
+ "description": "Prose, written as markdown."
8005
+ },
8006
+ "style": { "$ref": "#/$global/gaac/reportTextStyle" },
8007
+ "placeholder": { "$ref": "#/$global/gaac/reportPlaceholder" }
8008
+ },
8009
+ "required": ["id", "paragraph"]
8010
+ },
8011
+ "imageSlot": {
8012
+ "title": "Report Image Slot",
8013
+ "type": "object",
8014
+ "additionalProperties": false,
8015
+ "properties": {
8016
+ "id": { "$ref": "#/$global/gaac/reportSlotId" },
8017
+ "weight": { "$ref": "#/$global/gaac/reportWeight" },
8018
+ "image": { "$ref": "#/$global/gaac/reportImage" },
8019
+ "placeholder": { "$ref": "#/$global/gaac/reportPlaceholder" }
8020
+ },
8021
+ "required": ["id", "image"]
8022
+ },
8023
+ "report_page_layout": {
8024
+ "title": "ReportPageLayout",
8025
+ "type": "object",
8026
+ "additionalProperties": false,
8027
+ "properties": {
8028
+ "id": {
8029
+ "$ref": "#/$global/gaac/identifier",
8030
+ "description": "A unique identifier of the report page layout.",
8031
+ "$semantic": [
8032
+ {
8033
+ "type": "uniqueness",
8034
+ "source": "reportPageLayout.id",
8035
+ "code": "core.uniqueness.reportPageLayouts.id"
8036
+ },
8037
+ { "type": "definition", "source": "reportPageLayout.id" }
8038
+ ]
8039
+ },
8040
+ "type": { "type": "string", "enum": ["report_page_layout"] },
8041
+ "title": {
8042
+ "$ref": "#/$global/gaac/title",
8043
+ "description": "A human readable title for the report page layout."
8044
+ },
8045
+ "description": {
8046
+ "$ref": "#/$global/gaac/description",
8047
+ "description": "An optional description of the report page layout."
8048
+ },
8049
+ "tags": {
8050
+ "$ref": "#/$global/gaac/tags",
8051
+ "description": "A list of strings - metadata tags of this report page layout."
8052
+ },
8053
+ "kind": { "$ref": "#/$global/gaac/reportPageKind" },
8054
+ "format": { "$ref": "#/$global/gaac/reportPageFormat" },
8055
+ "style": {
8056
+ "$ref": "#/$global/gaac/reportBoxStyle",
8057
+ "description": "Paint of the page itself, behind everything the layout places."
8058
+ },
8059
+ "layout": {
8060
+ "$ref": "#/$global/gaac/reportLayoutNode",
8061
+ "description": "Root of the page layout tree."
8062
+ },
8063
+ "filters": {
8064
+ "$ref": "#/$global/gaac/dashboardFilters",
8065
+ "description": "Page filters, carried into the template and report content this page is copied into."
8066
+ }
8067
+ },
8068
+ "$semantic": { "type": "snippet", "snippets": ["report_page_layout"] },
8069
+ "required": ["id", "type", "title", "layout"],
8070
+ "description": "A reusable page. Its content fields are the same page body a report and a report template carry inline, so a field added to /gaac/reportPageBody belongs here too: JSON Schema cannot compose the two, because the page body closes itself to the entity's own id, title and tags."
8071
+ },
8072
+ "report_template": {
8073
+ "title": "ReportTemplate",
8074
+ "type": "object",
8075
+ "additionalProperties": false,
8076
+ "properties": {
8077
+ "id": {
8078
+ "$ref": "#/$global/gaac/identifier",
8079
+ "description": "A unique identifier of the report template.",
8080
+ "$semantic": [
8081
+ {
8082
+ "type": "uniqueness",
8083
+ "source": "reportTemplate.id",
8084
+ "code": "core.uniqueness.reportTemplates.id"
8085
+ },
8086
+ { "type": "definition", "source": "reportTemplate.id" }
8087
+ ]
8088
+ },
8089
+ "type": { "type": "string", "enum": ["report_template"] },
8090
+ "title": {
8091
+ "$ref": "#/$global/gaac/title",
8092
+ "description": "A human readable title for the report template."
8093
+ },
8094
+ "description": {
8095
+ "$ref": "#/$global/gaac/description",
8096
+ "description": "An optional description of the report template."
8097
+ },
8098
+ "tags": {
8099
+ "$ref": "#/$global/gaac/tags",
8100
+ "description": "A list of strings - metadata tags of this report template."
8101
+ },
8102
+ "pages": {
8103
+ "type": "array",
8104
+ "description": "Ordered pages of the template. A report created from the template deep-copies them and keeps no reference back, so the report stays frozen while the template evolves.",
8105
+ "items": { "$ref": "#/$global/gaac/reportPageBody" }
8106
+ },
8107
+ "filters": {
8108
+ "$ref": "#/$global/gaac/dashboardFilters",
8109
+ "description": "Template filters; pages and visualizations may extend or override them."
8110
+ },
8111
+ "variables": {
8112
+ "type": "array",
8113
+ "description": "Custom variables the template's text can interpolate as {name}. A report created from it gives them values.",
8114
+ "items": { "$ref": "#/$global/gaac/reportVariable" }
8115
+ }
8116
+ },
8117
+ "$semantic": { "type": "snippet", "snippets": ["report_template"] },
8118
+ "required": ["id", "type", "title", "pages"]
8119
+ },
7344
8120
  "bucketItem": {
7345
8121
  "title": "Bucket",
7346
8122
  "$semantic": {