From 6becf29efb757f63c2753bf24761b80b58085cc3 Mon Sep 17 00:00:00 2001 From: Sean Rose Date: Thu, 2 May 2024 13:05:06 -0700 Subject: [PATCH] Rebuild schemas to add "null" as an allowed type for non-required properties. --- .../events/events.1.schema.json | 63 +- .../impression-stats.1.schema.json | 70 +- .../impression-stats.2.schema.json | 65 +- .../on-save-recs/on-save-recs.1.schema.json | 20 +- .../pocket-button/pocket-button.1.schema.json | 25 +- .../sessions/sessions.1.schema.json | 90 +- .../spoc-fills/spoc-fills.1.schema.json | 10 +- .../quicksuggest-block.1.schema.json | 64 +- .../quicksuggest-click.1.schema.json | 61 +- .../quicksuggest-impression.1.schema.json | 71 +- .../topsites-click.1.schema.json | 38 +- .../topsites-impression.1.schema.json | 38 +- .../default-browser.1.schema.json | 50 +- .../bmobugs/bmobugs.1.schema.json | 5 +- .../eng-workflow/build/build.1.schema.json | 93 +- .../eng-workflow/hgpush/hgpush.1.schema.json | 20 +- .../install/install.1.schema.json | 245 +- .../launcher-process-failure.1.schema.json | 120 +- schemas/glean/glean/glean-min.1.schema.json | 115 +- schemas/glean/glean/glean.1.schema.json | 180 +- .../messaging-system/cfr/cfr.1.schema.json | 30 +- .../infobar/infobar.1.schema.json | 20 +- .../moments/moments.1.schema.json | 20 +- .../onboarding/onboarding.1.schema.json | 80 +- .../personalization-experiment.1.schema.json | 5 +- .../snippets/snippets.1.schema.json | 33 +- .../spotlight/spotlight.1.schema.json | 20 +- .../undesired-events.1.schema.json | 30 +- .../whats-new-panel.1.schema.json | 25 +- .../metadata/decoded/decoded.1.schema.json | 205 +- schemas/metadata/error/error.1.schema.json | 220 +- .../metaschema/metaschema.1.schema.json | 91 +- .../pioneer-decoded.1.schema.json | 220 +- .../pioneer-error/pioneer-error.1.schema.json | 235 +- .../pioneer-ingestion.1.schema.json | 170 +- schemas/metadata/raw/raw.1.schema.json | 95 +- .../structured-ingestion.1.schema.json | 155 +- .../telemetry-ingestion.1.schema.json | 180 +- .../activation/activation.1.schema.json | 10 +- schemas/mozdata/event/event.1.schema.json | 58 +- schemas/mozza/event/event.1.schema.json | 30 +- .../measurements/measurements.1.schema.json | 231 +- .../rallymeasurements.1.schema.json | 196 +- .../rallymeasurements.2.schema.json | 321 +- .../measurements/measurements.1.schema.json | 231 +- .../rallymeasurements.1.schema.json | 196 +- .../demographic-survey.1.schema.json | 245 +- .../uninstall-deletion.1.schema.json | 5 +- .../advertisement/advertisement.1.schema.json | 55 +- .../page-nav-sensitive.1.schema.json | 5 +- .../fire-tv-events.1.schema.json | 5 +- .../measurements/measurements.1.schema.json | 20 +- .../regrets-reporter-update.1.schema.json | 612 ++- .../anonymous/anonymous.4.schema.json | 38 +- schemas/telemetry/bhr/bhr.4.schema.json | 714 +++- .../block-autoplay.1.schema.json | 5 +- schemas/telemetry/core/core.1.schema.json | 5 +- schemas/telemetry/core/core.10.schema.json | 140 +- schemas/telemetry/core/core.2.schema.json | 140 +- schemas/telemetry/core/core.3.schema.json | 140 +- schemas/telemetry/core/core.4.schema.json | 140 +- schemas/telemetry/core/core.5.schema.json | 140 +- schemas/telemetry/core/core.6.schema.json | 140 +- schemas/telemetry/core/core.7.schema.json | 140 +- schemas/telemetry/core/core.8.schema.json | 140 +- schemas/telemetry/core/core.9.schema.json | 140 +- schemas/telemetry/crash/crash.4.schema.json | 1064 ++++- .../deletion-request.4.schema.json | 25 +- .../dnssec-study-v1.4.schema.json | 3807 +++++++++++++---- .../downgrade/downgrade.4.schema.json | 10 +- schemas/telemetry/event/event.4.schema.json | 706 ++- .../first-shutdown.4.schema.json | 1277 ++++-- .../focus-event/focus-event.1.schema.json | 40 +- schemas/telemetry/health/health.4.schema.json | 23 +- .../heartbeat/heartbeat.4.schema.json | 674 ++- .../installation/installation.1.schema.json | 60 +- schemas/telemetry/main/main.4.schema.json | 1272 ++++-- .../mobile-event/mobile-event.1.schema.json | 35 +- .../mobile-metrics.1.schema.json | 25 +- .../telemetry/modules/modules.4.schema.json | 656 ++- .../new-profile/new-profile.4.schema.json | 717 +++- .../normandy-login-study.4.schema.json | 40 +- schemas/telemetry/optout/optout.4.schema.json | 10 +- .../pioneer-study/pioneer-study.4.schema.json | 5 +- .../pre-account/pre-account.4.schema.json | 20 +- schemas/telemetry/prio/prio.4.schema.json | 15 +- .../regrets-reporter-update.4.schema.json | 612 ++- .../saved-session/saved-session.4.schema.json | 1277 ++++-- .../shield-icq-v1/shield-icq-v1.4.schema.json | 631 ++- .../shield-study-addon.3.schema.json | 263 +- .../shield-study-error.3.schema.json | 286 +- .../shield-study/shield-study.3.schema.json | 273 +- schemas/telemetry/sync/sync.4.schema.json | 340 +- schemas/telemetry/sync/sync.5.schema.json | 360 +- .../testpilot/testpilot.4.schema.json | 646 ++- .../third-party-modules.4.schema.json | 666 ++- .../uninstall/uninstall.4.schema.json | 636 ++- .../untrusted-modules.4.schema.json | 701 ++- schemas/telemetry/update/update.4.schema.json | 636 ++- .../voice-feedback.4.schema.json | 25 +- schemas/telemetry/voice/voice.4.schema.json | 846 +++- .../xfocsp-error-report.4.schema.json | 33 +- 102 files changed, 20933 insertions(+), 5298 deletions(-) diff --git a/schemas/activity-stream/events/events.1.schema.json b/schemas/activity-stream/events/events.1.schema.json index 2ec2747c7..be35270bd 100644 --- a/schemas/activity-stream/events/events.1.schema.json +++ b/schemas/activity-stream/events/events.1.schema.json @@ -15,14 +15,20 @@ "properties": { "action_position": { "description": "A zero based integer indicating the position of this event", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "addon_version": { "type": "string" }, "browser_session_id": { "description": "A mirror of the browser sessionId, as defined in https://github.com/mozilla-services/mozilla-pipeline-schemas/blob/main/schemas/telemetry/main/main.4.schema.json", - "type": "string" + "type": [ + "string", + "null" + ] }, "client_id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", @@ -42,7 +48,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "type": "string" @@ -55,38 +64,66 @@ "unknown", "n/a", "both", - "https://newtab.firefoxchina.cn/newtab/as/activity-stream.html" + "https://newtab.firefoxchina.cn/newtab/as/activity-stream.html", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "region": { - "type": "string" + "type": [ + "string", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "session_id": { "description": "A UUID representing an Activity Stream session. This can be used to do table joins between `sessions` and `events` in Activity Stream. Note that `n/a` denotes that the session is not applicable in the context.", "pattern": "^\\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\}$|^n/a$", - "type": "string" + "type": [ + "string", + "null" + ] }, "shield_id": { "description": "[DEPRECATED]: use `experiments` instead. A semicolon separated string to store a list of Shield study IDs", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { - "type": "string" + "type": [ + "string", + "null" + ] }, "user_prefs": { "description": "An encoded integer representing user's preferences of Activity Stream", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "value": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/activity-stream/impression-stats/impression-stats.1.schema.json b/schemas/activity-stream/impression-stats/impression-stats.1.schema.json index 47128805a..d67058c48 100644 --- a/schemas/activity-stream/impression-stats/impression-stats.1.schema.json +++ b/schemas/activity-stream/impression-stats/impression-stats.1.schema.json @@ -18,11 +18,17 @@ }, "block": { "description": "A 0-based index to record which tile in the 'tiles' list the user just interacted with", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "click": { "description": "A 0-based index to record which tile in the 'tiles' list the user just interacted with", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "experiments": { "additionalProperties": { @@ -34,7 +40,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "impression_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -43,7 +52,10 @@ }, "loaded": { "description": "An integer to record the size of the loaded 'tiles' list", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "locale": { "type": "string" @@ -62,23 +74,41 @@ }, "pocket": { "description": "A 0-based index to record which tile in the 'tiles' list the user just interacted with", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "region": { - "type": "string" + "type": [ + "string", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "shield_id": { "description": "[DEPRECATED]: use `experiments` instead. A semicolon separated string to store a list of Shield study IDs", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { - "type": "string" + "type": [ + "string", + "null" + ] }, "tiles": { "items": { @@ -87,7 +117,10 @@ "type": "integer" }, "pos": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ @@ -101,15 +134,24 @@ "type": "integer" }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "window_inner_height": { "description": "The interior height of the window in pixels, including the height of the horizontal scroll bar, if present", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "window_inner_width": { "description": "The interior width of the window in pixels. This includes the width of the vertical scroll bar, if one is present.", - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ diff --git a/schemas/activity-stream/impression-stats/impression-stats.2.schema.json b/schemas/activity-stream/impression-stats/impression-stats.2.schema.json index ec245c33c..e7a9a90ee 100644 --- a/schemas/activity-stream/impression-stats/impression-stats.2.schema.json +++ b/schemas/activity-stream/impression-stats/impression-stats.2.schema.json @@ -18,11 +18,17 @@ }, "block": { "description": "A 0-based index to record which tile in the 'tiles' list the user just interacted with", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "click": { "description": "A 0-based index to record which tile in the 'tiles' list the user just interacted with", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "experiments": { "additionalProperties": { @@ -34,7 +40,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "impression_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -43,7 +52,10 @@ }, "loaded": { "description": "An integer to record the size of the loaded 'tiles' list", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "locale": { "type": "string" @@ -62,19 +74,34 @@ }, "pocket": { "description": "A 0-based index to record which tile in the 'tiles' list the user just interacted with", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "region": { - "type": "string" + "type": [ + "string", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { - "type": "string" + "type": [ + "string", + "null" + ] }, "tiles": { "items": { @@ -84,7 +111,10 @@ "type": "string" }, "pos": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ @@ -98,15 +128,24 @@ "type": "integer" }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "window_inner_height": { "description": "The interior height of the window in pixels, including the height of the horizontal scroll bar, if present", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "window_inner_width": { "description": "The interior width of the window in pixels. This includes the width of the vertical scroll bar, if one is present.", - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ diff --git a/schemas/activity-stream/on-save-recs/on-save-recs.1.schema.json b/schemas/activity-stream/on-save-recs/on-save-recs.1.schema.json index 90249e860..93242c731 100644 --- a/schemas/activity-stream/on-save-recs/on-save-recs.1.schema.json +++ b/schemas/activity-stream/on-save-recs/on-save-recs.1.schema.json @@ -49,7 +49,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "impression_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -61,13 +64,22 @@ }, "model": { "description": "An identifier for the machine learning model used to generate the recommendations", - "type": "string" + "type": [ + "string", + "null" + ] }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/activity-stream/pocket-button/pocket-button.1.schema.json b/schemas/activity-stream/pocket-button/pocket-button.1.schema.json index 485912168..c44f784e2 100644 --- a/schemas/activity-stream/pocket-button/pocket-button.1.schema.json +++ b/schemas/activity-stream/pocket-button/pocket-button.1.schema.json @@ -28,7 +28,10 @@ }, "position": { "description": "A zero based integer indicating the position of this event.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "source": { "description": "An identifier for where the event occurred (e.g. what part of the Pocket button UI a click was performed on).", @@ -53,7 +56,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "impression_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -65,17 +71,26 @@ }, "model": { "description": "(In the case of actions related to on-save recs) An identifier for the machine learning model used to generate the recommendations.", - "type": "string" + "type": [ + "string", + "null" + ] }, "pocket_logged_in_status": { "description": "A boolean for whether the user was logged-in to the Pocket Firefox integration when they performed the indicated action(s). True = logged in.", "type": "boolean" }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/activity-stream/sessions/sessions.1.schema.json b/schemas/activity-stream/sessions/sessions.1.schema.json index 615c0d564..05c4737bb 100644 --- a/schemas/activity-stream/sessions/sessions.1.schema.json +++ b/schemas/activity-stream/sessions/sessions.1.schema.json @@ -30,7 +30,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "type": "string" @@ -51,15 +54,24 @@ "properties": { "highlights_data_late_by_ms": { "description": "Latency of the data availability for Highlights", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "is_preloaded": { "description": "Whether or not this session is preloaded", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "load_trigger_ts": { "description": "To store the timestamp (ms since Unix epoch) when this session gets triggered", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "load_trigger_type": { "enum": [ @@ -71,47 +83,83 @@ }, "topsites_data_late_by_ms": { "description": "Latency of the data availability for Top Sites", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "topsites_first_painted_ts": { "description": "To store the timestamp (ms since Unix epoch) when the Top Sites is first painted", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "topsites_icon_stats": { "description": "Icon stats for Top Sites, only sent if Top Sites is enabled", "properties": { "custom_screenshot": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "no_image": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "rich_icon": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "screenshot": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "screenshot_with_icon": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "tippytop": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "topsites_pinned": { "description": "The total number of pinned Top Sites in this session", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "topsites_search_shortcuts": { "description": "The total number of search shortcuts in this session", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visibility_event_rcvd_ts": { "description": "To store the timestamp (ms since Unix epoch) when the page is made visible to the user in this session", - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ @@ -124,7 +172,10 @@ "type": "integer" }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "session_duration": { "description": "The duration of this session in milliseconds. The session begins at `perf.visibility_event_rcvd_ts` and ends when the page is navigated away", @@ -137,7 +188,10 @@ }, "shield_id": { "description": "[DEPRECATED]: use `experiments` instead. A semicolon separated string to store a list of Shield study IDs", - "type": "string" + "type": [ + "string", + "null" + ] }, "user_prefs": { "description": "An encoded integer representing user's preferences of Activity Stream", diff --git a/schemas/activity-stream/spoc-fills/spoc-fills.1.schema.json b/schemas/activity-stream/spoc-fills/spoc-fills.1.schema.json index 6362622d2..11b8e9090 100644 --- a/schemas/activity-stream/spoc-fills/spoc-fills.1.schema.json +++ b/schemas/activity-stream/spoc-fills/spoc-fills.1.schema.json @@ -26,7 +26,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "impression_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -41,7 +44,10 @@ }, "shield_id": { "description": "[DEPRECATED]: use `experiments` instead. A semicolon separated string to store a list of Shield study IDs", - "type": "string" + "type": [ + "string", + "null" + ] }, "spoc_fills": { "items": { diff --git a/schemas/contextual-services/quicksuggest-block/quicksuggest-block.1.schema.json b/schemas/contextual-services/quicksuggest-block/quicksuggest-block.1.schema.json index 7a2625594..e6cf3948f 100644 --- a/schemas/contextual-services/quicksuggest-block/quicksuggest-block.1.schema.json +++ b/schemas/contextual-services/quicksuggest-block/quicksuggest-block.1.schema.json @@ -18,7 +18,10 @@ "properties": { "advertiser": { "description": "Name of the advertiser, e.g. amazon, ebay, bestbuy etc", - "type": "string" + "type": [ + "string", + "null" + ] }, "block_id": { "description": "A unique identifier for the QuickSuggest link", @@ -39,56 +42,89 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "iab_category": { "description": "The IAB category of the suggestion", "enum": [ "5 - Education", - "22 - Shopping" + "22 - Shopping", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "improve_suggest_experience_checked": { "description": "A boolean indicating whether the user has opted in to improving the Firefox Suggest experience", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "locale": { "description": "User's current locale", - "type": "string" + "type": [ + "string", + "null" + ] }, "match_type": { "description": "The match type of the suggestion", "enum": [ "firefox-suggest", - "best-match" + "best-match", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "position": { "description": "The placement of the QuickSuggest link (1-based)", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { "description": "Firefox release channel", - "type": "string" + "type": [ + "string", + "null" + ] }, "request_id": { "description": "The request identifier for every Merino API request made by Firefox", - "type": "string" + "type": [ + "string", + "null" + ] }, "scenario": { "description": "[Deprecated, use `improve_suggest_experience_checked`]; The scenario of the QuickSuggest user experience", "enum": [ "history", "offline", - "online" + "online", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "The source of the suggestion, either “remote-settings” or “merino”. See bug 1839487", - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "description": "Firefox version", diff --git a/schemas/contextual-services/quicksuggest-click/quicksuggest-click.1.schema.json b/schemas/contextual-services/quicksuggest-click/quicksuggest-click.1.schema.json index c62d972aa..60fd6205e 100644 --- a/schemas/contextual-services/quicksuggest-click/quicksuggest-click.1.schema.json +++ b/schemas/contextual-services/quicksuggest-click/quicksuggest-click.1.schema.json @@ -18,7 +18,10 @@ "properties": { "advertiser": { "description": "Name of the advertiser, e.g. amazon, ebay, bestbuy etc", - "type": "string" + "type": [ + "string", + "null" + ] }, "block_id": { "description": "A unique identifier for the QuickSuggest link", @@ -39,52 +42,84 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "improve_suggest_experience_checked": { "description": "A boolean indicating whether the user has opted in to improving the Firefox Suggest experience", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "locale": { "description": "User's current locale", - "type": "string" + "type": [ + "string", + "null" + ] }, "match_type": { "description": "The match type of the suggestion", "enum": [ "firefox-suggest", - "best-match" + "best-match", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "position": { "description": "The placement of the QuickSuggest link (1-based)", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { "description": "Firefox release channel", - "type": "string" + "type": [ + "string", + "null" + ] }, "reporting_url": { "description": "The reporting URL of the ad, normally pointing to the ad partner's reporting endpoint. It's URL encoded", - "type": "string" + "type": [ + "string", + "null" + ] }, "request_id": { "description": "The request identfier for every Merino API request made by Firefox", - "type": "string" + "type": [ + "string", + "null" + ] }, "scenario": { "description": "[Deprecated, use `improve_suggest_experience_checked`]; The scenario of the QuickSuggest user experience", "enum": [ "history", "offline", - "online" + "online", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "The source of the suggestion, either “remote-settings” or “merino”. See bug 1779049", - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "description": "Firefox version", diff --git a/schemas/contextual-services/quicksuggest-impression/quicksuggest-impression.1.schema.json b/schemas/contextual-services/quicksuggest-impression/quicksuggest-impression.1.schema.json index 8e6176b19..28aafea28 100644 --- a/schemas/contextual-services/quicksuggest-impression/quicksuggest-impression.1.schema.json +++ b/schemas/contextual-services/quicksuggest-impression/quicksuggest-impression.1.schema.json @@ -18,7 +18,10 @@ "properties": { "advertiser": { "description": "Name of the advertiser, e.g. amazon, ebay, bestbuy etc", - "type": "string" + "type": [ + "string", + "null" + ] }, "block_id": { "description": "A unique identifier for the QuickSuggest link", @@ -39,11 +42,17 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "improve_suggest_experience_checked": { "description": "A boolean indicating whether the user has opted in to improving the Firefox Suggest experience", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "is_clicked": { "description": "Whether or not the user has clicked on this QuickSuggest link", @@ -51,52 +60,84 @@ }, "locale": { "description": "User's current locale", - "type": "string" + "type": [ + "string", + "null" + ] }, "match_type": { "description": "The match type of the suggestion", "enum": [ "firefox-suggest", - "best-match" + "best-match", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "matched_keywords": { "description": "The matched keywords when a QuickSuggest link is shown", - "type": "string" + "type": [ + "string", + "null" + ] }, "position": { "description": "The placement of the QuickSuggest link (1-based)", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { "description": "Firefox release channel", - "type": "string" + "type": [ + "string", + "null" + ] }, "reporting_url": { "description": "The reporting URL of the ad, normally pointing to the ad partner's reporting endpoint. It's URL encoded", - "type": "string" + "type": [ + "string", + "null" + ] }, "request_id": { "description": "The request identfier for every Merino API request made by Firefox", - "type": "string" + "type": [ + "string", + "null" + ] }, "scenario": { "description": "[Deprecated, use `improve_suggest_experience_checked`]; The scenario of the QuickSuggest user experience", "enum": [ "history", "offline", - "online" + "online", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "search_query": { "description": "The user's typed-in search query in the AwesomeBar. Note that this ping is only sent when a QuickSuggest ad is shown for the current search query, so we don't have to limit its size here", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "The source of the suggestion, either “remote-settings” or “merino”. See bug 1779049", - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "description": "Firefox version", diff --git a/schemas/contextual-services/topsites-click/topsites-click.1.schema.json b/schemas/contextual-services/topsites-click/topsites-click.1.schema.json index cb63839d4..307fe86a8 100644 --- a/schemas/contextual-services/topsites-click/topsites-click.1.schema.json +++ b/schemas/contextual-services/topsites-click/topsites-click.1.schema.json @@ -18,7 +18,10 @@ "properties": { "advertiser": { "description": "Name of the advertiser, e.g. amazon, ebay, bestbuy etc", - "type": "string" + "type": [ + "string", + "null" + ] }, "context_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -35,31 +38,50 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "description": "User's current locale", - "type": "string" + "type": [ + "string", + "null" + ] }, "position": { "description": "The placement of the tile (1-based)", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { "description": "Firefox release channel", - "type": "string" + "type": [ + "string", + "null" + ] }, "reporting_url": { "description": "The reporting URL of the ad, normally pointing to the ad partner's reporting endpoint. It's URL encoded", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "The browser location where the click was triggered", "enum": [ "newtab", - "urlbar" + "urlbar", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "tile_id": { "description": "A unique identifier for the sponsored tile", diff --git a/schemas/contextual-services/topsites-impression/topsites-impression.1.schema.json b/schemas/contextual-services/topsites-impression/topsites-impression.1.schema.json index f429dccc8..b5d2b3653 100644 --- a/schemas/contextual-services/topsites-impression/topsites-impression.1.schema.json +++ b/schemas/contextual-services/topsites-impression/topsites-impression.1.schema.json @@ -18,7 +18,10 @@ "properties": { "advertiser": { "description": "Name of the advertiser, e.g. amazon, ebay, bestbuy etc", - "type": "string" + "type": [ + "string", + "null" + ] }, "context_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -35,31 +38,50 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "description": "User's current locale", - "type": "string" + "type": [ + "string", + "null" + ] }, "position": { "description": "The placement of the tile (1-based)", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { "description": "Firefox release channel", - "type": "string" + "type": [ + "string", + "null" + ] }, "reporting_url": { "description": "The reporting URL of the ad, normally pointing to the ad partner's reporting endpoint. It's URL encoded", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "The browser location where the impression was displayed", "enum": [ "newtab", - "urlbar" + "urlbar", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "tile_id": { "description": "A unique identifier for the sponsored tile", diff --git a/schemas/default-browser-agent/default-browser/default-browser.1.schema.json b/schemas/default-browser-agent/default-browser/default-browser.1.schema.json index 349efab11..0b4e48a71 100644 --- a/schemas/default-browser-agent/default-browser/default-browser.1.schema.json +++ b/schemas/default-browser-agent/default-browser/default-browser.1.schema.json @@ -16,31 +16,52 @@ "client_id": { "description": "Deprecated; This field will never be sent", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "default_browser": { "description": "The current default browser", - "type": "string" + "type": [ + "string", + "null" + ] }, "default_pdf_viewer_raw": { "description": "The current default PDF viewer", - "type": "string" + "type": [ + "string", + "null" + ] }, "notification_action": { "description": "What action was taken by the user then the toast notification was displayed", - "type": "string" + "type": [ + "string", + "null" + ] }, "notification_not_shown_reason": { "description": "If no notification was shown, this will indicate why it was not", - "type": "string" + "type": [ + "string", + "null" + ] }, "notification_shown": { "description": "Whether the notification was shown, not shown, or resulted in an error", - "type": "string" + "type": [ + "string", + "null" + ] }, "notification_type": { "description": "Whether the notification shown was the initial notification, or the followup", - "type": "string" + "type": [ + "string", + "null" + ] }, "os_locale": { "description": "The current user's OS locale setting", @@ -52,15 +73,24 @@ }, "previous_default_browser": { "description": "What the default browser was before it was changed to the current one", - "type": "string" + "type": [ + "string", + "null" + ] }, "previous_notification_action": { "description": "What action was taken by the user the last time a toast notification was displayed", - "type": "string" + "type": [ + "string", + "null" + ] }, "previous_os_version": { "description": "The Windows OS version before it was changed to the current setting. The possible values are the same as for ``os_version``. The OS does not keep track of the previous OS version, so the agent records this information itself. That means that it will be inaccurate until the first time the default is changed after the agent task begins running. Before then, the value of ``previous_os_version`` will be the same as ``os_version``. This value is updated every time the Default Agent runs, so when the default browser is first changed the values for ``os_version`` and ``previous_os_version`` will be different. But on subsequent executions of the Default Agent, the two values will be the same.", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/schemas/eng-workflow/bmobugs/bmobugs.1.schema.json b/schemas/eng-workflow/bmobugs/bmobugs.1.schema.json index 49e008346..00ad0094e 100644 --- a/schemas/eng-workflow/bmobugs/bmobugs.1.schema.json +++ b/schemas/eng-workflow/bmobugs/bmobugs.1.schema.json @@ -116,7 +116,10 @@ "type": "integer" }, "resolution": { - "type": "string" + "type": [ + "string", + "null" + ] }, "target_milestone": { "type": "string" diff --git a/schemas/eng-workflow/build/build.1.schema.json b/schemas/eng-workflow/build/build.1.schema.json index 10d77a136..44070c6b2 100644 --- a/schemas/eng-workflow/build/build.1.schema.json +++ b/schemas/eng-workflow/build/build.1.schema.json @@ -18,25 +18,40 @@ "properties": { "clobber": { "description": "true if the build was a clobber/full build", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "cpu_percent": { "description": "cpu utilization observed during a build", - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "build_opts": { "description": "Selected build options", "properties": { "artifact": { "description": "true if --enable-artifact-builds", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "ccache": { "description": "true if ccache is in use (--with-ccache)", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "compiler": { "description": "The compiler type in use (CC_TYPE)", @@ -44,25 +59,41 @@ "clang", "clang-cl", "gcc", - "msvc" + "msvc", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "debug": { "description": "true if build is debug (--enable-debug)", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "icecream": { "description": "true if icecream in use", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "opt": { "description": "true if build is optimized (--enable-optimize)", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "sccache": { "description": "true if ccache in use is sccache", - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, "type": "object" @@ -82,7 +113,10 @@ }, "exception": { "description": "If a Python exception was encountered during the execution of the command, this value contains the result of calling `repr` on the exception object.", - "type": "string" + "type": [ + "string", + "null" + ] }, "file_types_changed": { "description": "This array contains a list of objects with {ext, count} properties giving the count of files changed since the last invocation grouped by file type", @@ -103,7 +137,10 @@ ], "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "success": { "description": "true if the command succeeded", @@ -113,19 +150,31 @@ "properties": { "cpu_brand": { "description": "CPU brand string from CPUID", - "type": "string" + "type": [ + "string", + "null" + ] }, "drive_is_ssd": { "description": "true if the source directory is on a solid-state disk", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "logical_cores": { "description": "Number of logical CPU cores present", - "type": "number" + "type": [ + "number", + "null" + ] }, "memory_gb": { "description": "System memory in GB", - "type": "number" + "type": [ + "number", + "null" + ] }, "os": { "description": "Operating system", @@ -139,11 +188,17 @@ }, "physical_cores": { "description": "Number of physical CPU cores present", - "type": "number" + "type": [ + "number", + "null" + ] }, "virtual_machine": { "description": "true if the OS appears to be running in a virtual machine", - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, "required": [ diff --git a/schemas/eng-workflow/hgpush/hgpush.1.schema.json b/schemas/eng-workflow/hgpush/hgpush.1.schema.json index 33b959a75..4258733aa 100644 --- a/schemas/eng-workflow/hgpush/hgpush.1.schema.json +++ b/schemas/eng-workflow/hgpush/hgpush.1.schema.json @@ -18,17 +18,26 @@ "additions": { "description": "The number of lines added by this changeset.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "changedFiles": { "description": "The number of files modified by this changeset.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "deletions": { "description": "The number of lines removed by this changeset.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": [ @@ -46,7 +55,10 @@ "pushDate": { "description": "Timestamp, in Unix time (seconds since the Unix epoch), of when the push to the repository occurred. This value is obtained from the original repository pushlog.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "repository": { "description": "The URL of the repository the changeset was pushed to.", diff --git a/schemas/firefox-installer/install/install.1.schema.json b/schemas/firefox-installer/install/install.1.schema.json index 7f902e2d4..b519f790b 100644 --- a/schemas/firefox-installer/install/install.1.schema.json +++ b/schemas/firefox-installer/install/install.1.schema.json @@ -9,19 +9,31 @@ "properties": { "64bit_build": { "description": "True if the installed build is 64-bit", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "64bit_os": { "description": "True if the OS this installer ran on is 64-bit", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "admin_user": { "description": "True if the user account which ran the installer had administrative privileges", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "attribution": { "description": "Any attribution data that was included with the installer", - "type": "string" + "type": [ + "string", + "null" + ] }, "build_channel": { "description": "Channel the installer was built with the branding for", @@ -29,82 +41,136 @@ }, "build_id": { "description": "Build ID of the installed product. Absent for a failed stub installation.", - "type": "string" + "type": [ + "string", + "null" + ] }, "bytes_downloaded": { "description": "Size of the full installer data that was actually transferred", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "default_path": { "description": "True if the user did not customize the installation path", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "disk_space_error": { "description": "True if the installation failed because the drive we're trying to install to does not have enough space", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "distribution_id": { "description": "ID of partner distribution, defaulting to 0 for Mozilla distributions", - "type": "string" + "type": [ + "string", + "null" + ] }, "distribution_version": { "description": "Version of partner distribution, defaulting to 0 for Mozilla distributions", - "type": "string" + "type": [ + "string", + "null" + ] }, "download_ip": { "description": "IP address of the server the full installer was downloaded from. May be either IPv4 or IPv6.", - "type": "string" + "type": [ + "string", + "null" + ] }, "download_latency": { "description": "Seconds between sending the full installer download request and receiving the first response data", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "download_retries": { "description": "Number of times the full installer download was retried or resumed", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "download_size": { "description": "Expected size of the full installer download according to the HTTP response", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "download_time": { "description": "Seconds spent downloading the full installer", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "file_error": { "description": "True if the installation failed because the downloaded file couldn’t be read from", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "finish_time": { "description": "For a stub ping, seconds spent waiting for the installed application to launch. For a full ping, seconds spent on the finish page.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "from_msi": { "description": "True if the install was launched from an MSI wrapper", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "funnelcake": { "description": "Funnelcake ID", - "type": "string" + "type": [ + "string", + "null" + ] }, "had_old_install": { "description": "True if at least one existing installation of Firefox was found on the system prior to this installation", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "install_time": { "description": "For a stub ping, seconds the full installer ran for. For a full ping, seconds spent on the install progress page.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "install_timeout": { "description": "True if the installation failed because running the full installer timed out. Currently that means it ran for more than 150 seconds for a new installation, or 165 seconds for a paveover installation.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "installer_type": { "description": "Which type of installer generated this ping (full or stub)", @@ -117,113 +183,194 @@ "intro_time": { "description": "Seconds spent on the intro screen", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "locale": { "description": "Locale of the installer and the installed product, in AB_CD format", - "type": "string" + "type": [ + "string", + "null" + ] }, "manual_download": { "description": "True if the user clicked through the error message to the manual full installer download page.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "new_default": { "description": "True if the new installation was successfully set as the default browser", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "new_launched": { "description": "True if the installation succeeded and we were able to launch the newly installed application.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "no_write_access": { "description": "True if the installation failed because the user doesn’t have permission to write to the path we’re trying to install to.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "old_build_id": { "description": "Build ID of the previously installed Firefox, if any", - "type": "string" + "type": [ + "string", + "null" + ] }, "old_default": { "description": "True if an existing Firefox installation was already set as the default browser", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "old_running": { "description": "True if the installation succeeded and we weren’t able to launch the newly installed application because a copy of Firefox was already running.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "old_version": { "description": "Version of the previously installed Firefox, if any", - "type": "string" + "type": [ + "string", + "null" + ] }, "options_time": { "description": "Seconds spent in the options screens. For the stub installer this includes only the profile cleanup prompt.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "os_version": { "description": "Windows version number in major.minor.build format", - "type": "string" + "type": [ + "string", + "null" + ] }, "out_of_retries": { "description": "True if the installation failed because the download had to be retried too many times (currently 10)", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "ping_version": { "description": "Only set for stub installer pings", - "type": "string" + "type": [ + "string", + "null" + ] }, "preinstall_time": { "description": "Seconds spent verifying the downloaded full installer and preparing to run it", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "profile_cleanup_prompt": { "description": "Which type of profile cleanup prompt was shown, (reinstall or paveover)", - "type": "string" + "type": [ + "string", + "null" + ] }, "profile_cleanup_requested": { "description": "True if either profile cleanup prompt was shown and the user accepted the prompt", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "server_os": { "description": "True if the OS this installer ran on is Windows Server", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "service_pack": { "description": "Latest installed service pack number", - "type": "string" + "type": [ + "string", + "null" + ] }, "set_default": { "description": "True if the option to set the new installation as the default browser was selected", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "sig_not_trusted": { "description": "True if the installation failed because the signature on the downloaded file wasn’t valid and/or wasn’t signed by a trusted authority", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "sig_unexpected": { "description": "True if the installation failed because the signature on the downloaded file didn’t have the expected subject and issuer names", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "silent": { "description": "True if the installer was run in silent mode (either from an MSI or with command-line parameters)", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "succeeded": { "description": "True if a new installation was successfully created. If false, check the error status fields for the failure reason.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "update_channel": { "description": "Value of MOZ_UPDATE_CHANNEL the installer was built with. Generally the same as build_channel", - "type": "string" + "type": [ + "string", + "null" + ] }, "user_cancelled": { "description": "True if the installation failed because the user cancelled it or closed the window", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "version": { "description": "Version of the installed product. May be different from installer_version for a stub install. Absent for a failed stub installation.", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/schemas/firefox-launcher-process/launcher-process-failure/launcher-process-failure.1.schema.json b/schemas/firefox-launcher-process/launcher-process-failure/launcher-process-failure.1.schema.json index 4b6d288c5..e914921fb 100644 --- a/schemas/firefox-launcher-process/launcher-process-failure/launcher-process-failure.1.schema.json +++ b/schemas/firefox-launcher-process/launcher-process-failure/launcher-process-failure.1.schema.json @@ -8,11 +8,17 @@ "properties": { "build_id": { "description": "Build ID of the failing binary", - "type": "string" + "type": [ + "string", + "null" + ] }, "build_version": { "description": "Version of the failing binary", - "type": "string" + "type": [ + "string", + "null" + ] }, "cpu_arch": { "description": "One of the values from the Windows SYSTEM_INFO::wProcessorArchitecture field", @@ -20,34 +26,55 @@ }, "creationDate": { "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "is_admin_without_uac": { "description": "True if the process was launched with Administrator privileges but without User Account Control (= UAC)", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "launcher_error": { "description": "The error that raised the launcher process failure", "properties": { "detour_orig_bytes": { "description": "First sixteen bytes of a function that we failed to hook (Nightly-only). This field is added only on detour failures.", - "type": "string" + "type": [ + "string", + "null" + ] }, "hresult": { "description": "The HRESULT error code from the launcher failure", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "source_file": { "description": "The leaf name of the source file where the failure originated", - "type": "string" + "type": [ + "string", + "null" + ] }, "source_line": { "description": "The line in the source code where the failure originated", - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" @@ -57,22 +84,37 @@ "properties": { "avail_page_file": { "description": "Free space available in the page file, in bytes", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "avail_phys": { "description": "Available physical memory on the machine, in bytes", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "avail_virt": { "description": "Available virtual memory on the machine, in bytes", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "total_phys": { "description": "Total physical memory on the machine, in bytes", - "type": "integer" + "type": [ + "integer", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "modules": { "additionalProperties": { @@ -93,7 +135,10 @@ "description": "List of leaf names of all modules found in the launcher process at the time of failure", "maxProperties": 1000, "minProperties": 1, - "type": "object" + "type": [ + "object", + "null" + ] }, "num_logical_cpus": { "description": "The number of logical CPUs on the host machine", @@ -101,15 +146,24 @@ }, "os_locale": { "description": "The current user's OS locale setting", - "type": "string" + "type": [ + "string", + "null" + ] }, "os_version": { "description": "Windows version numnber in major.minor.build.UBR format (UBR is optional, only available on Win10)", - "type": "string" + "type": [ + "string", + "null" + ] }, "process_type": { "description": "The type of the process which failed to start as a sandboxed process", - "type": "string" + "type": [ + "string", + "null" + ] }, "security": { "description": "Information about the security applications registered with Windows on the host computer", @@ -120,7 +174,10 @@ "type": "string" }, "maxItems": 1000, - "type": "array" + "type": [ + "array", + "null" + ] }, "av": { "description": "Names of antivirus products registred on the host system", @@ -128,7 +185,10 @@ "type": "string" }, "maxItems": 1000, - "type": "array" + "type": [ + "array", + "null" + ] }, "firewall": { "description": "Names of firewall products registred on the host system", @@ -136,14 +196,23 @@ "type": "string" }, "maxItems": 1000, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "server_os": { "description": "True if this build was running atop a Windows Server OS", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "signatures": { "description": "Array of all the signatures that were found during module enumeration", @@ -151,7 +220,10 @@ "type": "string" }, "maxItems": 1000, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "enum": [ diff --git a/schemas/glean/glean/glean-min.1.schema.json b/schemas/glean/glean/glean-min.1.schema.json index 5e4b91f54..00e072386 100644 --- a/schemas/glean/glean/glean-min.1.schema.json +++ b/schemas/glean/glean/glean-min.1.schema.json @@ -28,7 +28,10 @@ "maxLength": 40, "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "name": { "type": "string" @@ -45,7 +48,10 @@ ], "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "metrics": { "additionalProperties": false, @@ -59,7 +65,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "counter": { "additionalProperties": { @@ -70,7 +79,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "custom_distribution": { "additionalProperties": { @@ -103,7 +115,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "datetime": { "additionalProperties": { @@ -115,7 +130,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "jwe": { "additionalProperties": { @@ -126,7 +144,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "labeled_boolean": { "additionalProperties": { @@ -145,7 +166,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "labeled_counter": { "additionalProperties": { @@ -164,7 +188,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "labeled_rate": { "additionalProperties": { @@ -198,7 +225,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "labeled_string": { "additionalProperties": { @@ -217,7 +247,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "memory_distribution": { "additionalProperties": { @@ -249,7 +282,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "object": { "additionalProperties": { @@ -266,7 +302,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "quantity": { "additionalProperties": { @@ -277,7 +316,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "rate": { "additionalProperties": { @@ -303,7 +345,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "string": { "additionalProperties": { @@ -314,7 +359,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "string_list": { "additionalProperties": { @@ -328,7 +376,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "text": { "additionalProperties": { @@ -340,7 +391,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "timespan": { "additionalProperties": { @@ -372,7 +426,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "timing_distribution": { "additionalProperties": { @@ -440,7 +497,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "url": { "additionalProperties": { @@ -452,7 +512,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "uuid": { "additionalProperties": { @@ -464,10 +527,16 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "title": "Ping transport", diff --git a/schemas/glean/glean/glean.1.schema.json b/schemas/glean/glean/glean.1.schema.json index 6015e3c1b..5a127f37a 100644 --- a/schemas/glean/glean/glean.1.schema.json +++ b/schemas/glean/glean/glean.1.schema.json @@ -18,7 +18,10 @@ "properties": { "android_sdk_version": { "description": "The optional Android specific SDK version of the software running on this hardware device.", - "type": "string" + "type": [ + "string", + "null" + ] }, "app_build": { "description": "The build identifier generated by the CI system (e.g. \"1234/A\"). For language bindings that provide automatic detection for this value, (e.g. Android/Kotlin), in the unlikely event that the build identifier can not be retrieved from the OS, it is set to \"inaccessible\". For other language bindings, if the value was not provided through configuration, this metric gets set to `Unknown`.", @@ -26,7 +29,10 @@ }, "app_channel": { "description": "The channel the application is being distributed on.", - "type": "string" + "type": [ + "string", + "null" + ] }, "app_display_version": { "description": "The user visible version string (e.g. \"1.0.3\"). In the unlikely event that the display version can not be retrieved, it is set to \"inaccessible\".", @@ -39,20 +45,32 @@ "build_date": { "description": "The date & time the application was built", "format": "datetime", - "type": "string" + "type": [ + "string", + "null" + ] }, "client_id": { "description": "A UUID uniquely identifying the client.", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "device_manufacturer": { "description": "The manufacturer of the device the application is running on. Not set if the device manufacturer can't be determined (e.g. on Desktop).", - "type": "string" + "type": [ + "string", + "null" + ] }, "device_model": { "description": "The model of the device the application is running on. On Android, this is Build.MODEL, the user-visible marketing name, like \"Pixel 2 XL\". Not set if the device model can't be determined (e.g. on Desktop).", - "type": "string" + "type": [ + "string", + "null" + ] }, "first_run_date": { "description": "The date of the first run of the application.", @@ -61,7 +79,10 @@ }, "locale": { "description": "The locale of the application during initialization (e.g. \"es-ES\"). If the locale can't be determined on the system, the value is [\"und\"](https://unicode.org/reports/tr35/#Unknown_or_Invalid_Identifiers), to indicate \"undetermined\".", - "type": "string" + "type": [ + "string", + "null" + ] }, "os": { "description": "The name of the operating system. Possible values: Android, iOS, Linux, Darwin, Windows, FreeBSD, NetBSD, OpenBSD, Solaris, unknown", @@ -73,11 +94,17 @@ }, "session_count": { "description": "An optional running counter of the number of sessions for a client.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "session_id": { "description": "An optional UUID uniquely identifying the client's current session.", - "type": "string" + "type": [ + "string", + "null" + ] }, "telemetry_sdk_build": { "description": "The version of the Glean SDK", @@ -85,7 +112,10 @@ }, "windows_build_number": { "description": "The optional Windows build number, reported by Windows (e.g. 22000) and not set for other platforms", - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ @@ -114,7 +144,10 @@ "maxLength": 40, "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "name": { "type": "string" @@ -131,7 +164,10 @@ ], "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "metrics": { "additionalProperties": false, @@ -145,7 +181,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "counter": { "additionalProperties": { @@ -156,7 +195,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "custom_distribution": { "additionalProperties": { @@ -189,7 +231,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "datetime": { "additionalProperties": { @@ -201,7 +246,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "jwe": { "additionalProperties": { @@ -212,7 +260,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "labeled_boolean": { "additionalProperties": { @@ -231,7 +282,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "labeled_counter": { "additionalProperties": { @@ -250,7 +304,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "labeled_rate": { "additionalProperties": { @@ -284,7 +341,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "labeled_string": { "additionalProperties": { @@ -303,7 +363,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "memory_distribution": { "additionalProperties": { @@ -335,7 +398,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "object": { "additionalProperties": { @@ -352,7 +418,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "quantity": { "additionalProperties": { @@ -363,7 +432,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "rate": { "additionalProperties": { @@ -389,7 +461,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "string": { "additionalProperties": { @@ -400,7 +475,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "string_list": { "additionalProperties": { @@ -414,7 +492,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "text": { "additionalProperties": { @@ -426,7 +507,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "timespan": { "additionalProperties": { @@ -458,7 +542,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "timing_distribution": { "additionalProperties": { @@ -526,7 +613,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "url": { "additionalProperties": { @@ -538,7 +628,10 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "uuid": { "additionalProperties": { @@ -550,10 +643,16 @@ "pattern": "^[a-z_][a-z0-9_\\.]+$", "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "ping_info": { "additionalProperties": false, @@ -598,16 +697,25 @@ "maxLength": 100, "type": "string" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "ping_type": { "maxLength": 30, "pattern": "^[a-z-_][a-z0-9-_]*$", - "type": "string" + "type": [ + "string", + "null" + ] }, "reason": { "maxLength": 30, - "type": "string" + "type": [ + "string", + "null" + ] }, "seq": { "type": "integer" diff --git a/schemas/messaging-system/cfr/cfr.1.schema.json b/schemas/messaging-system/cfr/cfr.1.schema.json index 05d0942bd..23f673fa1 100644 --- a/schemas/messaging-system/cfr/cfr.1.schema.json +++ b/schemas/messaging-system/cfr/cfr.1.schema.json @@ -53,7 +53,10 @@ }, "event_context": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "additionalProperties": { @@ -65,7 +68,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "impression_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -79,18 +85,30 @@ "type": "string" }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "shield_id": { "description": "[DEPRECATED]: use `experiments` instead. A semicolon separated string to store a list of Shield study IDs", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "Added to reduce validation exceptions: see #1787882", - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/messaging-system/infobar/infobar.1.schema.json b/schemas/messaging-system/infobar/infobar.1.schema.json index 5873ccbe1..2fa68f607 100644 --- a/schemas/messaging-system/infobar/infobar.1.schema.json +++ b/schemas/messaging-system/infobar/infobar.1.schema.json @@ -18,7 +18,10 @@ }, "browser_session_id": { "description": "A mirror of the browser sessionId, as defined in https://github.com/mozilla-services/mozilla-pipeline-schemas/blob/main/schemas/telemetry/main/main.4.schema.json", - "type": "string" + "type": [ + "string", + "null" + ] }, "client_id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", @@ -30,7 +33,10 @@ }, "event_context": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "additionalProperties": { @@ -42,7 +48,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "type": "string" @@ -51,7 +60,10 @@ "type": "string" }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/messaging-system/moments/moments.1.schema.json b/schemas/messaging-system/moments/moments.1.schema.json index e57c9af12..058a47498 100644 --- a/schemas/messaging-system/moments/moments.1.schema.json +++ b/schemas/messaging-system/moments/moments.1.schema.json @@ -53,7 +53,10 @@ }, "event_context": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "additionalProperties": { @@ -65,7 +68,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "impression_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -79,10 +85,16 @@ "type": "string" }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/messaging-system/onboarding/onboarding.1.schema.json b/schemas/messaging-system/onboarding/onboarding.1.schema.json index 258975f61..6c197949f 100644 --- a/schemas/messaging-system/onboarding/onboarding.1.schema.json +++ b/schemas/messaging-system/onboarding/onboarding.1.schema.json @@ -20,46 +20,79 @@ "properties": { "campaign": { "description": "Identifier of the particular campaign that led to the download of the product.", - "type": "string" + "type": [ + "string", + "null" + ] }, "content": { "description": "Identifier to indicate the particular link within a campaign.", - "type": "string" + "type": [ + "string", + "null" + ] }, "dlsource": { "description": "Identifier that indicates where installations of Firefox originate, see bug 1827238", - "type": "string" + "type": [ + "string", + "null" + ] }, "dltoken": { "description": "Unique token created at Firefox download time, see bug 1757451", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiment": { "description": "Funnel experiment parameters, see bug 1567339", - "type": "string" + "type": [ + "string", + "null" + ] }, "medium": { "description": "Category of the source, such as 'organic' for a search engine.", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "Referring partner domain, when install happens via a known partner.", - "type": "string" + "type": [ + "string", + "null" + ] }, "ua": { "description": "Derived user agent, see bug 1595063", - "type": "string" + "type": [ + "string", + "null" + ] }, "variation": { "description": "Funnel experiment parameters, see bug 1567339", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "browser_session_id": { "description": "A mirror of the browser sessionId, as defined in https://github.com/mozilla-services/mozilla-pipeline-schemas/blob/main/schemas/telemetry/main/main.4.schema.json", - "type": "string" + "type": [ + "string", + "null" + ] }, "client_id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", @@ -71,7 +104,10 @@ }, "event_context": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "additionalProperties": { @@ -83,7 +119,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "type": "string" @@ -92,14 +131,23 @@ "type": "string" }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "shield_id": { "description": "[DEPRECATED]: use `experiments` instead. A semicolon separated string to store a list of Shield study IDs", - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/messaging-system/personalization-experiment/personalization-experiment.1.schema.json b/schemas/messaging-system/personalization-experiment/personalization-experiment.1.schema.json index 364a7031d..0a31b5545 100644 --- a/schemas/messaging-system/personalization-experiment/personalization-experiment.1.schema.json +++ b/schemas/messaging-system/personalization-experiment/personalization-experiment.1.schema.json @@ -160,7 +160,10 @@ "type": "array" }, "impression_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "model_version": { "type": "number" diff --git a/schemas/messaging-system/snippets/snippets.1.schema.json b/schemas/messaging-system/snippets/snippets.1.schema.json index a22ddc47b..617bbeb57 100644 --- a/schemas/messaging-system/snippets/snippets.1.schema.json +++ b/schemas/messaging-system/snippets/snippets.1.schema.json @@ -26,7 +26,10 @@ }, "event_context": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "additionalProperties": { @@ -38,7 +41,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "type": "string" @@ -47,22 +53,35 @@ "type": "string" }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "shield_id": { "description": "[DEPRECATED]: use `experiments` instead. A semicolon separated string to store a list of Shield study IDs", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "A string describing the source of this event", "enum": [ "NEWTAB_FOOTER_BAR", - "NEWTAB_FOOTER_BAR_CONTENT" + "NEWTAB_FOOTER_BAR_CONTENT", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/messaging-system/spotlight/spotlight.1.schema.json b/schemas/messaging-system/spotlight/spotlight.1.schema.json index 53ce2b67b..b3eec7e00 100644 --- a/schemas/messaging-system/spotlight/spotlight.1.schema.json +++ b/schemas/messaging-system/spotlight/spotlight.1.schema.json @@ -18,7 +18,10 @@ }, "browser_session_id": { "description": "A mirror of the browser sessionId, as defined in https://github.com/mozilla-services/mozilla-pipeline-schemas/blob/main/schemas/telemetry/main/main.4.schema.json", - "type": "string" + "type": [ + "string", + "null" + ] }, "client_id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", @@ -30,7 +33,10 @@ }, "event_context": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "additionalProperties": { @@ -42,7 +48,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "type": "string" @@ -51,7 +60,10 @@ "type": "string" }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/messaging-system/undesired-events/undesired-events.1.schema.json b/schemas/messaging-system/undesired-events/undesired-events.1.schema.json index b649ff077..3f1b707b3 100644 --- a/schemas/messaging-system/undesired-events/undesired-events.1.schema.json +++ b/schemas/messaging-system/undesired-events/undesired-events.1.schema.json @@ -22,7 +22,10 @@ }, "event_context": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "additionalProperties": { @@ -34,7 +37,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "impression_id": { "description": "A UUID representing this user. Note that it's not client_id, nor can it be used to link to a client_id", @@ -45,17 +51,29 @@ "type": "string" }, "message_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "shield_id": { "description": "[DEPRECATED]: use `experiments` instead. A semicolon separated string to store a list of Shield study IDs", - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/messaging-system/whats-new-panel/whats-new-panel.1.schema.json b/schemas/messaging-system/whats-new-panel/whats-new-panel.1.schema.json index 43e48f4c5..55ffc4989 100644 --- a/schemas/messaging-system/whats-new-panel/whats-new-panel.1.schema.json +++ b/schemas/messaging-system/whats-new-panel/whats-new-panel.1.schema.json @@ -19,7 +19,10 @@ }, "browser_session_id": { "description": "A mirror of the browser sessionId, as defined in https://github.com/mozilla-services/mozilla-pipeline-schemas/blob/main/schemas/telemetry/main/main.4.schema.json", - "type": "string" + "type": [ + "string", + "null" + ] }, "client_id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", @@ -31,7 +34,10 @@ }, "event_context": { "description": "A string that describes the context about this event", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "additionalProperties": { @@ -43,7 +49,10 @@ "type": "object" }, "description": "An object to record all active experiments, experiments IDs are stored as keys, and the value object stores the branch information. Example: {\"experiment_1\": {\"branch\": \"control\"}, \"experiment_2\": {\"branch\": \"treatment\"}}. This deprecates the \"shield_id\" used in activity-stream and messaging-system.", - "type": "object" + "type": [ + "object", + "null" + ] }, "locale": { "type": "string" @@ -52,10 +61,16 @@ "type": "string" }, "profile_creation_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "release_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "type": "string" diff --git a/schemas/metadata/decoded/decoded.1.schema.json b/schemas/metadata/decoded/decoded.1.schema.json index a87360de4..9f38a981f 100644 --- a/schemas/metadata/decoded/decoded.1.schema.json +++ b/schemas/metadata/decoded/decoded.1.schema.json @@ -4,166 +4,289 @@ "properties": { "client_id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "document_id": { "description": "The document ID specified in the URI when the client sent this message", - "type": "string" + "type": [ + "string", + "null" + ] }, "metadata": { "properties": { "document_namespace": { - "type": "string" + "type": [ + "string", + "null" + ] }, "document_type": { - "type": "string" + "type": [ + "string", + "null" + ] }, "document_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo": { "description": "Results of a geographic lookup based on the client's IP address", "properties": { "city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "country": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "db_version": { "description": "The specific geo database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision1": { "description": "First major country subdivision, typically a state, province, or county", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision2": { "description": "Second major country subdivision; not applicable for most countries", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "header": { "description": "Headers included in the client's HTTP request", "properties": { "date": { "description": "Date HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "dnt": { "description": "DNT (Do Not Track) HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_debug_id": { "description": "X-Debug-Id HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_foxsec_ip_reputation": { "description": "X-Foxsec-IP-Reputation header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_lb_tags": { "description": "X-LB-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pingsender_version": { "description": "X-PingSender-Version HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_source_tags": { "description": "X-Source-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_telemetry_agent": { "description": "X-Telemetry-Agent HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isp": { "description": "Results of ISP lookup based on the client's IP address", "properties": { "db_version": { "description": "The specific geo ISP database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The name of the ISP associated with the client's IP address", - "type": "string" + "type": [ + "string", + "null" + ] }, "organization": { "description": "The name of a specific business entity associated with the client's IP address when available; otherwise the ISP name", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "uri": { "description": "Components of the URI to which this ping was sent", "properties": { "app_build_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_update_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "user_agent": { "description": "Parsed components of the client's user agent string", "properties": { "browser": { - "type": "string" + "type": [ + "string", + "null" + ] }, "os": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "normalized_app_name": { "description": "Set to \"Other\" if this message contained an unrecognized app name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_channel": { "description": "Set to \"Other\" if this message contained an unrecognized channel name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_country_code": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os": { "description": "Set to \"Other\" if this message contained an unrecognized OS name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "payload": { "format": "bytes", - "type": "string" + "type": [ + "string", + "null" + ] }, "sample_id": { "description": "Hashed version of client_id (if present) useful for partitioning; ranges from 0 to 99", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "submission_timestamp": { "description": "Time when the ingestion edge server accepted this message", diff --git a/schemas/metadata/error/error.1.schema.json b/schemas/metadata/error/error.1.schema.json index dc5b3d691..493fc89dd 100644 --- a/schemas/metadata/error/error.1.schema.json +++ b/schemas/metadata/error/error.1.schema.json @@ -4,106 +4,199 @@ "properties": { "args": { "description": "query parameter part of the submission URI, e.g. \"v=4\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "client_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "content_length": { "description": "Content-Length header", - "type": "string" + "type": [ + "string", + "null" + ] }, "date": { "description": "Date header", - "type": "string" + "type": [ + "string", + "null" + ] }, "dnt": { "description": "DNT header", - "type": "string" + "type": [ + "string", + "null" + ] }, "document_namespace": { - "type": "string" + "type": [ + "string", + "null" + ] }, "document_type": { - "type": "string" + "type": [ + "string", + "null" + ] }, "document_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "error_message": { - "type": "string" + "type": [ + "string", + "null" + ] }, "error_type": { - "type": "string" + "type": [ + "string", + "null" + ] }, "exception_class": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo_city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo_country": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo_subdivision1": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo_subdivision2": { - "type": "string" + "type": [ + "string", + "null" + ] }, "host": { "description": "Usually populated with the hostname part of the submission URI, e.g. \"incoming.telemetry.mozilla.org\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "input": { - "type": "string" + "type": [ + "string", + "null" + ] }, "input_type": { - "type": "string" + "type": [ + "string", + "null" + ] }, "isp_name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "isp_organization": { - "type": "string" + "type": [ + "string", + "null" + ] }, "job_name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "method": { "description": "HTTP method, e.g. \"POST\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "payload": { "description": "Gzip-compressed JSON payload", "format": "bytes", - "type": "string" + "type": [ + "string", + "null" + ] }, "protocol": { "description": "e.g. \"HTTP/1.1\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "remote_addr": { "description": "Deprecated; will always be null", - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_1": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_2": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_3": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_4": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_5": { - "type": "string" + "type": [ + "string", + "null" + ] }, "submission_timestamp": { "description": "Time when the ingestion edge server in GCP accepted this message; format is ISO 8601 with microseconds and timezone \"Z\", example: \"2018-03-12T21:02:18.123456Z\"", @@ -112,52 +205,91 @@ }, "uri": { "description": "e.g. \"/submit/telemetry/6c49ec73-4350-45a0-9c8a-6c8f5aded0cf/main/Firefox/58.0.2/release/20180206200532\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent": { "description": "User-Agent header", - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent_browser": { - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent_os": { - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "x_debug_id": { "description": "X-Debug-Id header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_forwarded_for": { "description": "Deprecated; will always be null", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_foxsec_ip_reputation": { "description": "X-Foxsec-IP-Reputation header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_lb_tags": { "description": "X-LB-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pingsender_version": { "description": "X-Pingsender-Version header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pipeline_proxy": { "description": "Deprecated; will always be null", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_source_tags": { "description": "X-Source-Tags header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_telemetry_agent": { "description": "X-Telemetry-Agent HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/schemas/metadata/metaschema/metaschema.1.schema.json b/schemas/metadata/metaschema/metaschema.1.schema.json index f58e313b7..49a741ff9 100644 --- a/schemas/metadata/metaschema/metaschema.1.schema.json +++ b/schemas/metadata/metaschema/metaschema.1.schema.json @@ -13,20 +13,30 @@ }, "bq_dataset_family": { "description": "NOT YET IMPLEMENTED: The base name for the destination BigQuery dataset; if this is set to 'telemetry', the pipeline will write into 'telemetry_live'", - "type": "string" + "type": [ + "string", + "null" + ] }, "bq_metadata_format": { "description": "The logical format for the metadata struct in the destination BigQuery table", "enum": [ "structured", "telemetry", - "pioneer" + "pioneer", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "bq_table": { "description": "NOT YET IMPLEMENTED: The name of the destination BigQuery table", - "type": "string" + "type": [ + "string", + "null" + ] }, "expiration_policy": { "additionalProperties": false, @@ -35,22 +45,37 @@ "collect_through_date": { "description": "If present, the pipeline will reject new data with submission_timestamp after the given date, sending it to error output", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "delete_after_days": { "description": "If present, a time_partitioning_expiration policy will be set on the destination stable table in BigQuery", - "type": "integer" + "type": [ + "integer", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "geoip_skip_entries": { "description": "If present, how many additional entries (beyond two) to skip in x_forwarded_for when performing geoip decoding, useful when submissions are ingested from trusted proxies; if there are fewer entries in x_forwarded_for than (N+1) the last entry is used instead of (N+3)rd-to-last", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "json_object_path_regex": { "description": "The path for which a JSON column will be enforced. This should be a regular expression which is used by the jsonschema-transpiler to match against the fully qualified name of a metric", - "type": "string" + "type": [ + "string", + "null" + ] }, "jwe_mappings": { "description": "Mappings of encrypted JWE field paths to destinations where the value decrypted by the pipeline should be placed; initial use case is Account Ecosystem Telemetry; paths must be in [JSON Pointer format](https://tools.ietf.org/html/rfc6901) like '/payload/ecosystemAnonId'", @@ -72,7 +97,10 @@ ], "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "override_attributes": { "description": "Mappings of Pub/Sub attribute names to static values; these are applied in the Decoder immediately before incorporating metadata into the payload, so can be used to overwrite values calculated in the pipeline; a null value will cause the pipeline to drop the named attribute; some attribute names differ from the nested metadata format in BigQuery, so for example you must use \"geo_city\" here in order to manipulate the value that shows up as metadata.geo.city; implemented for bug 1742172", @@ -101,18 +129,27 @@ ], "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "sample_id_source_uuid_attribute": { "description": "If specified, sample_id will be calculated from a hash of the specified attribute if it is a valid UUID after removing curly brackets; if neither this nor sample_id_source_uuid_payload_path are specified, the client_id attribute will be used; implemented for DENG-547", - "type": "string" + "type": [ + "string", + "null" + ] }, "sample_id_source_uuid_payload_path": { "description": "If specified and sample_id was not set due to sample_id_source_uuid_attribute, then sample_id will be calculated from a hash of the specified payload path; this is specified as a list strings to allow indicating nested fields, so for example metrics.uuid.legacy_ids_client_id would be specified as [\"metrics\",\"uuid\",\"legacy_ids_client_id\"]; if neither this nor sample_id_source_uuid_attribute are specified, the client_id attribute will be used; implemented for DENG-547", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "split_config": { "additionalProperties": false, @@ -141,7 +178,10 @@ "document_type", "document_version" ], - "type": "object" + "type": [ + "object", + "null" + ] }, "subsets": { "description": "Array of subset pings to generate.", @@ -160,7 +200,10 @@ }, "extra_pattern": { "description": "Like pattern, except the schema of matched properties must also be present in the remainder, because schemas cannot delete fields. Data for matched properties will only go to this subset ping.", - "type": "string" + "type": [ + "string", + "null" + ] }, "pattern": { "description": "Regular expression matching .-delimited property names that should be moved to this subset ping. Only properties explictly defined in the non-generic json schema of the original ping are supported, because property names are matched during schema generation.", @@ -182,7 +225,10 @@ "preserve_original", "subsets" ], - "type": "object" + "type": [ + "object", + "null" + ] }, "submission_timestamp_granularity": { "description": "If specified, the submission_timestamp field will be truncated to the specified granularity in the pipeline before being output to BigQuery; this can be used to reduce the potential for using time-based attacks to correlate datasets using different client-level identifiers; see Java's ChronoUnit for additional granularities that could be considered for inclusion; implemented for bug 1742172", @@ -191,12 +237,19 @@ "seconds", "minutes", "hours", - "days" + "days", + null ], - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "type": "object" diff --git a/schemas/metadata/pioneer-decoded/pioneer-decoded.1.schema.json b/schemas/metadata/pioneer-decoded/pioneer-decoded.1.schema.json index 9ad3e5af4..4f29b4922 100644 --- a/schemas/metadata/pioneer-decoded/pioneer-decoded.1.schema.json +++ b/schemas/metadata/pioneer-decoded/pioneer-decoded.1.schema.json @@ -4,183 +4,315 @@ "properties": { "client_id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "document_id": { "description": "The document ID specified in the URI when the client sent this message", - "type": "string" + "type": [ + "string", + "null" + ] }, "metadata": { "properties": { "document_namespace": { - "type": "string" + "type": [ + "string", + "null" + ] }, "document_type": { - "type": "string" + "type": [ + "string", + "null" + ] }, "document_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo": { "description": "Results of a geographic lookup based on the client's IP address", "properties": { "city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "country": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "db_version": { "description": "The specific geo database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision1": { "description": "First major country subdivision, typically a state, province, or county", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision2": { "description": "Second major country subdivision; not applicable for most countries", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "header": { "description": "Headers included in the client's HTTP request", "properties": { "date": { "description": "Date HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "dnt": { "description": "DNT (Do Not Track) HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_debug_id": { "description": "X-Debug-Id HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_foxsec_ip_reputation": { "description": "X-Foxsec-IP-Reputation header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_lb_tags": { "description": "X-LB-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pingsender_version": { "description": "X-PingSender-Version HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_source_tags": { "description": "X-Source-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_telemetry_agent": { "description": "X-Telemetry-Agent HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isp": { "description": "Results of ISP lookup based on the client's IP address", "properties": { "db_version": { "description": "The specific geo ISP database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The name of the ISP associated with the client's IP address", - "type": "string" + "type": [ + "string", + "null" + ] }, "organization": { "description": "The name of a specific business entity associated with the client's IP address when available; otherwise the ISP name", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "uri": { "description": "Components of the URI to which this ping was sent", "properties": { "app_build_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_update_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "user_agent": { "description": "Parsed components of the client's user agent string", "properties": { "browser": { - "type": "string" + "type": [ + "string", + "null" + ] }, "os": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "normalized_app_name": { "description": "Set to \"Other\" if this message contained an unrecognized app name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_channel": { "description": "Set to \"Other\" if this message contained an unrecognized channel name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_country_code": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os": { "description": "Set to \"Other\" if this message contained an unrecognized OS name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "payload": { "format": "bytes", - "type": "string" + "type": [ + "string", + "null" + ] }, "pioneerId": { "description": "Custom pioneer id, must not be Telemetry clientId", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "rallyId": { "description": "Bug 1677567 - Rally id reported by the core addon; deprecated as part of bug 1708552.", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "sample_id": { "description": "Hashed version of client_id (if present) useful for partitioning; ranges from 0 to 99", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "studyName": { "description": "Name of a particular study. Usually the addon_id. Not populated when using glean.js.", "maxLength": 100, "minLength": 1, "pattern": "^\\S+$", - "type": "string" + "type": [ + "string", + "null" + ] }, "submission_timestamp": { "description": "Time when the ingestion edge server accepted this message", diff --git a/schemas/metadata/pioneer-error/pioneer-error.1.schema.json b/schemas/metadata/pioneer-error/pioneer-error.1.schema.json index a49548834..78b215e47 100644 --- a/schemas/metadata/pioneer-error/pioneer-error.1.schema.json +++ b/schemas/metadata/pioneer-error/pioneer-error.1.schema.json @@ -4,123 +4,225 @@ "properties": { "args": { "description": "query parameter part of the submission URI, e.g. \"v=4\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "client_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "content_length": { "description": "Content-Length header", - "type": "string" + "type": [ + "string", + "null" + ] }, "date": { "description": "Date header", - "type": "string" + "type": [ + "string", + "null" + ] }, "dnt": { "description": "DNT header", - "type": "string" + "type": [ + "string", + "null" + ] }, "document_namespace": { - "type": "string" + "type": [ + "string", + "null" + ] }, "document_type": { - "type": "string" + "type": [ + "string", + "null" + ] }, "document_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "error_message": { - "type": "string" + "type": [ + "string", + "null" + ] }, "error_type": { - "type": "string" + "type": [ + "string", + "null" + ] }, "exception_class": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo_city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo_country": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo_subdivision1": { - "type": "string" + "type": [ + "string", + "null" + ] }, "geo_subdivision2": { - "type": "string" + "type": [ + "string", + "null" + ] }, "host": { "description": "Usually populated with the hostname part of the submission URI, e.g. \"incoming.telemetry.mozilla.org\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "input": { - "type": "string" + "type": [ + "string", + "null" + ] }, "input_type": { - "type": "string" + "type": [ + "string", + "null" + ] }, "isp_name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "isp_organization": { - "type": "string" + "type": [ + "string", + "null" + ] }, "job_name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "method": { "description": "HTTP method, e.g. \"POST\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "payload": { "description": "Gzip-compressed JSON payload", "format": "bytes", - "type": "string" + "type": [ + "string", + "null" + ] }, "pioneerId": { "description": "Custom pioneer id, must not be Telemetry clientId", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "protocol": { "description": "e.g. \"HTTP/1.1\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "rallyId": { "description": "Bug 1677567 - Rally id reported by the core addon; deprecated as part of bug 1708552.", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "remote_addr": { "description": "Deprecated; will always be null", - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_1": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_2": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_3": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_4": { - "type": "string" + "type": [ + "string", + "null" + ] }, "stack_trace_cause_5": { - "type": "string" + "type": [ + "string", + "null" + ] }, "studyName": { "description": "Name of a particular study. Usually the addon_id. Not populated when using glean.js.", "maxLength": 100, "minLength": 1, "pattern": "^\\S+$", - "type": "string" + "type": [ + "string", + "null" + ] }, "submission_timestamp": { "description": "Time when the ingestion edge server in GCP accepted this message; format is ISO 8601 with microseconds and timezone \"Z\", example: \"2018-03-12T21:02:18.123456Z\"", @@ -129,52 +231,91 @@ }, "uri": { "description": "e.g. \"/submit/telemetry/6c49ec73-4350-45a0-9c8a-6c8f5aded0cf/main/Firefox/58.0.2/release/20180206200532\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent": { "description": "User-Agent header", - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent_browser": { - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent_os": { - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "x_debug_id": { "description": "X-Debug-Id header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_forwarded_for": { "description": "Deprecated; will always be null", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_foxsec_ip_reputation": { "description": "X-Foxsec-IP-Reputation header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_lb_tags": { "description": "X-LB-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pingsender_version": { "description": "X-Pingsender-Version header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pipeline_proxy": { "description": "Deprecated; will always be null", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_source_tags": { "description": "X-Source-Tags header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_telemetry_agent": { "description": "X-Telemetry-Agent HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/schemas/metadata/pioneer-ingestion/pioneer-ingestion.1.schema.json b/schemas/metadata/pioneer-ingestion/pioneer-ingestion.1.schema.json index 46b3c7f9a..f9fdf6b97 100644 --- a/schemas/metadata/pioneer-ingestion/pioneer-ingestion.1.schema.json +++ b/schemas/metadata/pioneer-ingestion/pioneer-ingestion.1.schema.json @@ -5,11 +5,17 @@ "properties": { "additional_properties": { "description": "A JSON string containing any payload properties not present in the schema", - "type": "string" + "type": [ + "string", + "null" + ] }, "document_id": { "description": "The document ID specified in the URI when the client sent this message", - "type": "string" + "type": [ + "string", + "null" + ] }, "metadata": { "properties": { @@ -17,140 +23,236 @@ "description": "Results of a geographic lookup based on the client's IP address", "properties": { "city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "country": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "db_version": { "description": "The specific geo database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision1": { "description": "First major country subdivision, typically a state, province, or county", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision2": { "description": "Second major country subdivision; not applicable for most countries", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "header": { "description": "Headers included in the client's HTTP request", "properties": { "date": { "description": "Date HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "dnt": { "description": "DNT (Do Not Track) HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_debug_id": { "description": "X-Debug-Id HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_foxsec_ip_reputation": { "description": "X-Foxsec-IP-Reputation header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_lb_tags": { "description": "X-LB-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pingsender_version": { "description": "X-PingSender-Version HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_source_tags": { "description": "X-Source-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_telemetry_agent": { "description": "X-Telemetry-Agent HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isp": { "description": "Results of ISP lookup based on the client's IP address", "properties": { "db_version": { "description": "The specific geo ISP database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The name of the ISP associated with the client's IP address", - "type": "string" + "type": [ + "string", + "null" + ] }, "organization": { "description": "The name of a specific business entity associated with the client's IP address when available; otherwise the ISP name", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "user_agent": { "description": "Parsed components of the client's user agent string", "properties": { "browser": { - "type": "string" + "type": [ + "string", + "null" + ] }, "os": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "type": "object" }, "normalized_app_name": { "description": "Set to \"Other\" if this message contained an unrecognized app name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_channel": { "description": "Set to \"Other\" if this message contained an unrecognized channel name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_country_code": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os": { "description": "Set to \"Other\" if this message contained an unrecognized OS name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "pioneerId": { "description": "Custom pioneer id, must not be Telemetry clientId", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "rallyId": { "description": "Bug 1677567 - Rally id reported by the core addon; deprecated as part of bug 1708552.", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "sample_id": { "description": "Hashed version of client_id (if present) useful for partitioning; ranges from 0 to 99", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "studyName": { "description": "Name of a particular study. Usually the addon_id. Not populated when using glean.js.", "maxLength": 100, "minLength": 1, "pattern": "^\\S+$", - "type": "string" + "type": [ + "string", + "null" + ] }, "submission_timestamp": { "description": "Time when the ingestion edge server accepted this message", diff --git a/schemas/metadata/raw/raw.1.schema.json b/schemas/metadata/raw/raw.1.schema.json index 441268bed..0f12d96b7 100644 --- a/schemas/metadata/raw/raw.1.schema.json +++ b/schemas/metadata/raw/raw.1.schema.json @@ -4,40 +4,67 @@ "properties": { "args": { "description": "query parameter part of the submission URI, e.g. \"v=4\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "content_length": { "description": "Content-Length header", - "type": "string" + "type": [ + "string", + "null" + ] }, "date": { "description": "Date header", - "type": "string" + "type": [ + "string", + "null" + ] }, "dnt": { "description": "DNT header", - "type": "string" + "type": [ + "string", + "null" + ] }, "host": { "description": "Usually populated with the hostname part of the submission URI, e.g. \"incoming.telemetry.mozilla.org\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "method": { "description": "HTTP method, e.g. \"POST\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "payload": { "description": "Gzip-compressed JSON payload", "format": "bytes", - "type": "string" + "type": [ + "string", + "null" + ] }, "protocol": { "description": "e.g. \"HTTP/1.1\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "remote_addr": { "description": "Source IP address, usually a load balancer", - "type": "string" + "type": [ + "string", + "null" + ] }, "submission_timestamp": { "description": "Time when the ingestion edge server in GCP accepted this message; format is ISO 8601 with microseconds and timezone \"Z\", example: \"2018-03-12T21:02:18.123456Z\"", @@ -46,43 +73,73 @@ }, "uri": { "description": "e.g. \"/submit/telemetry/6c49ec73-4350-45a0-9c8a-6c8f5aded0cf/main/Firefox/58.0.2/release/20180206200532\"", - "type": "string" + "type": [ + "string", + "null" + ] }, "user_agent": { "description": "User-Agent header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_debug_id": { "description": "X-Debug-Id header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_forwarded_for": { "description": "X-Forwarded-For header containing intermediate IP addresses", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_foxsec_ip_reputation": { "description": "X-Foxsec-IP-Reputation header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_lb_tags": { "description": "X-LB-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pingsender_version": { "description": "X-Pingsender-Version header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pipeline_proxy": { "description": "Any non-null value indicates that this message was proxied from AWS", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_source_tags": { "description": "X-Source-Tags header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_telemetry_agent": { "description": "X-Telemetry-Agent HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/schemas/metadata/structured-ingestion/structured-ingestion.1.schema.json b/schemas/metadata/structured-ingestion/structured-ingestion.1.schema.json index 6c5fdf82f..c5395d98f 100644 --- a/schemas/metadata/structured-ingestion/structured-ingestion.1.schema.json +++ b/schemas/metadata/structured-ingestion/structured-ingestion.1.schema.json @@ -4,11 +4,17 @@ "properties": { "additional_properties": { "description": "A JSON string containing any payload properties not present in the schema", - "type": "string" + "type": [ + "string", + "null" + ] }, "document_id": { "description": "The document ID specified in the URI when the client sent this message", - "type": "string" + "type": [ + "string", + "null" + ] }, "metadata": { "properties": { @@ -16,123 +22,210 @@ "description": "Results of a geographic lookup based on the client's IP address", "properties": { "city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "country": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "db_version": { "description": "The specific geo database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision1": { "description": "First major country subdivision, typically a state, province, or county", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision2": { "description": "Second major country subdivision; not applicable for most countries", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "header": { "description": "Headers included in the client's HTTP request", "properties": { "date": { "description": "Date HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "dnt": { "description": "DNT (Do Not Track) HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_debug_id": { "description": "X-Debug-Id HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_foxsec_ip_reputation": { "description": "X-Foxsec-IP-Reputation header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_lb_tags": { "description": "X-LB-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pingsender_version": { "description": "X-PingSender-Version HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_source_tags": { "description": "X-Source-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_telemetry_agent": { "description": "X-Telemetry-Agent HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isp": { "description": "Results of ISP lookup based on the client's IP address", "properties": { "db_version": { "description": "The specific geo ISP database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The name of the ISP associated with the client's IP address", - "type": "string" + "type": [ + "string", + "null" + ] }, "organization": { "description": "The name of a specific business entity associated with the client's IP address when available; otherwise the ISP name", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "user_agent": { "description": "Parsed components of the client's user agent string", "properties": { "browser": { - "type": "string" + "type": [ + "string", + "null" + ] }, "os": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "type": "object" }, "normalized_app_name": { "description": "Set to \"Other\" if this message contained an unrecognized app name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_channel": { "description": "Set to \"Other\" if this message contained an unrecognized channel name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_country_code": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os": { "description": "Set to \"Other\" if this message contained an unrecognized OS name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "sample_id": { "description": "Hashed version of client_id (if present) useful for partitioning; ranges from 0 to 99", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "submission_timestamp": { "description": "Time when the ingestion edge server accepted this message", diff --git a/schemas/metadata/telemetry-ingestion/telemetry-ingestion.1.schema.json b/schemas/metadata/telemetry-ingestion/telemetry-ingestion.1.schema.json index 3253f0a71..b68dbd39a 100644 --- a/schemas/metadata/telemetry-ingestion/telemetry-ingestion.1.schema.json +++ b/schemas/metadata/telemetry-ingestion/telemetry-ingestion.1.schema.json @@ -4,11 +4,17 @@ "properties": { "additional_properties": { "description": "A JSON string containing any payload properties not present in the schema", - "type": "string" + "type": [ + "string", + "null" + ] }, "document_id": { "description": "The document ID specified in the URI when the client sent this message", - "type": "string" + "type": [ + "string", + "null" + ] }, "metadata": { "properties": { @@ -16,141 +22,243 @@ "description": "Results of a geographic lookup based on the client's IP address", "properties": { "city": { - "type": "string" + "type": [ + "string", + "null" + ] }, "country": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "db_version": { "description": "The specific geo database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision1": { "description": "First major country subdivision, typically a state, province, or county", - "type": "string" + "type": [ + "string", + "null" + ] }, "subdivision2": { "description": "Second major country subdivision; not applicable for most countries", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "header": { "description": "Headers included in the client's HTTP request", "properties": { "date": { "description": "Date HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "dnt": { "description": "DNT (Do Not Track) HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_debug_id": { "description": "X-Debug-Id HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_foxsec_ip_reputation": { "description": "X-Foxsec-IP-Reputation header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_lb_tags": { "description": "X-LB-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_pingsender_version": { "description": "X-PingSender-Version HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_source_tags": { "description": "X-Source-Tags HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] }, "x_telemetry_agent": { "description": "X-Telemetry-Agent HTTP header", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isp": { "description": "Results of ISP lookup based on the client's IP address", "properties": { "db_version": { "description": "The specific geo ISP database version used for this lookup", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The name of the ISP associated with the client's IP address", - "type": "string" + "type": [ + "string", + "null" + ] }, "organization": { "description": "The name of a specific business entity associated with the client's IP address when available; otherwise the ISP name", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "uri": { "description": "Components of the URI to which this ping was sent", "properties": { "app_build_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_update_channel": { - "type": "string" + "type": [ + "string", + "null" + ] }, "app_version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "user_agent": { "description": "Parsed components of the client's user agent string", "properties": { "browser": { - "type": "string" + "type": [ + "string", + "null" + ] }, "os": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "type": "object" }, "normalized_app_name": { "description": "Set to \"Other\" if this message contained an unrecognized app name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_channel": { "description": "Set to \"Other\" if this message contained an unrecognized channel name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_country_code": { "description": "An ISO 3166-1 alpha-2 country code", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os": { "description": "Set to \"Other\" if this message contained an unrecognized OS name", - "type": "string" + "type": [ + "string", + "null" + ] }, "normalized_os_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "sample_id": { "description": "Hashed version of client_id (if present) useful for partitioning; ranges from 0 to 99", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "submission_timestamp": { "description": "Time when the ingestion edge server accepted this message", diff --git a/schemas/mobile/activation/activation.1.schema.json b/schemas/mobile/activation/activation.1.schema.json index db4a75303..b67b0ffc1 100644 --- a/schemas/mobile/activation/activation.1.schema.json +++ b/schemas/mobile/activation/activation.1.schema.json @@ -33,7 +33,10 @@ "type": "string" }, "distribution_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "identifier": { "description": "hashed version of Google ID", @@ -58,7 +61,10 @@ "type": "string" }, "profile_date": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "tz": { "description": "timezone offset in minutes from UTC", diff --git a/schemas/mozdata/event/event.1.schema.json b/schemas/mozdata/event/event.1.schema.json index e869f0ae4..838766270 100644 --- a/schemas/mozdata/event/event.1.schema.json +++ b/schemas/mozdata/event/event.1.schema.json @@ -11,7 +11,8 @@ "apiCall": { "enum": [ "listRDDs", - "list_rdds" + "list_rdds", + null ] } }, @@ -24,7 +25,8 @@ "apiCall": { "enum": [ "listTables", - "list_tables" + "list_tables", + null ] } } @@ -34,7 +36,8 @@ "apiCall": { "enum": [ "readRDD", - "read_rdd" + "read_rdd", + null ] } }, @@ -48,7 +51,8 @@ "apiCall": { "enum": [ "readTable", - "read_table" + "read_table", + null ] } }, @@ -60,7 +64,8 @@ "properties": { "apiCall": { "enum": [ - "sql" + "sql", + null ] } }, @@ -73,7 +78,8 @@ "apiCall": { "enum": [ "writeTable", - "write_table" + "write_table", + null ] } }, @@ -85,10 +91,16 @@ ], "properties": { "adHocTablesDir": { - "type": "string" + "type": [ + "string", + "null" + ] }, "apiCall": { - "type": "string" + "type": [ + "string", + "null" + ] }, "apiVersion": { "type": "string" @@ -97,16 +109,25 @@ "type": "string" }, "detectedVersion": { - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "type": "string" }, "owner": { - "type": "string" + "type": [ + "string", + "null" + ] }, "partition": { - "type": "string" + "type": [ + "string", + "null" + ] }, "query": { "type": "string" @@ -115,16 +136,25 @@ "type": "string" }, "sqlTableName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "tableName": { "type": "string" }, "uri": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/schemas/mozza/event/event.1.schema.json b/schemas/mozza/event/event.1.schema.json index 290e85ef3..d2ddfe08b 100644 --- a/schemas/mozza/event/event.1.schema.json +++ b/schemas/mozza/event/event.1.schema.json @@ -7,13 +7,22 @@ }, "properties": { "browser": { - "type": "string" + "type": [ + "string", + "null" + ] }, "browser_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "domain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "event": { "items": [ @@ -53,10 +62,16 @@ "type": "array" }, "os": { - "type": "string" + "type": [ + "string", + "null" + ] }, "os_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "property": { "enum": [ @@ -65,7 +80,10 @@ "type": "string" }, "request_uri": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/schemas/pioneer-citp-news-disinfo-two/measurements/measurements.1.schema.json b/schemas/pioneer-citp-news-disinfo-two/measurements/measurements.1.schema.json index e6e60711f..0e4ba8226 100644 --- a/schemas/pioneer-citp-news-disinfo-two/measurements/measurements.1.schema.json +++ b/schemas/pioneer-citp-news-disinfo-two/measurements/measurements.1.schema.json @@ -18,33 +18,60 @@ "additionalProperties": false, "properties": { "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "destinationDomain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "laterSharedCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "laterVisitedCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "numExposures": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "sourceDomain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visThreshold": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "untrackedLinkExposures": { "additionalProperties": { @@ -53,26 +80,41 @@ "propertyNames": { "pattern": "^[0-9]*$" }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "WebScience.Measurements.PageNavigation": { "additionalProperties": false, "properties": { "numUntrackedVisits": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "trackedVisitsByDomain": { "items": { "additionalProperties": false, "properties": { "domain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "numSessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitsByReferrer": { "items": { @@ -83,48 +125,87 @@ "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "laterSharedCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "numVisits": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "pageCategory": { "description": "deprecated, use classifierResults", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "prevExposedCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "referrerDomain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "totalAttention": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "totalScroll": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "WebScience.Measurements.SocialMediaLinkSharing": { "additionalProperties": false, @@ -134,15 +215,22 @@ "additionalProperties": false, "properties": { "numUntrackedShares": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "platform": { "enum": [ "facebook", "twitter", - "reddit" + "reddit", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "trackedShares": { "items": { @@ -152,65 +240,114 @@ "enum": [ "public", "restricted", - "unknown" + "unknown", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "classification": { "description": "deprecated, use classifierResults", - "type": "string" + "type": [ + "string", + "null" + ] }, "classifierResults": { "additionalProperties": { "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "domain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "numShares": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "pageClassification": { "description": "deprecated, use classifierResults", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "prevExposed": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "source": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitReferrer": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "WebScience.SurveyId": { "description": "ID sent to Qualtrics, for associating survey responses with telemetry data", - "type": "string" + "type": [ + "string", + "null" + ] }, "WebScience.version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" diff --git a/schemas/pioneer-citp-news-disinfo-two/rallymeasurements/rallymeasurements.1.schema.json b/schemas/pioneer-citp-news-disinfo-two/rallymeasurements/rallymeasurements.1.schema.json index e909e718e..6871ea12c 100644 --- a/schemas/pioneer-citp-news-disinfo-two/rallymeasurements/rallymeasurements.1.schema.json +++ b/schemas/pioneer-citp-news-disinfo-two/rallymeasurements/rallymeasurements.1.schema.json @@ -19,27 +19,48 @@ "additionalProperties": false, "properties": { "categoryExposuresCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "exposureDestinationTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "exposureSourceTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.pageNavigation": { "additionalProperties": false, @@ -49,49 +70,88 @@ "additionalProperties": false, "properties": { "categoryAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryScroll": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryVisitsCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "classifierResults": { "additionalProperties": { "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "sourceTrimmedUrlFromReferrer": { - "type": "string" + "type": [ + "string", + "null" + ] }, "sourceTrimmedUrlFromTransitions": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "untrackedAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "untrackedVisitsCount": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.socialMediaLinkSharing": { "additionalProperties": false, @@ -104,78 +164,134 @@ "enum": [ "facebook", "twitter", - "reddit" + "reddit", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "trackedSharesByCategory": { "items": { "additionalProperties": false, "properties": { "categorySharesCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "categoryVisitAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryVisitsInHistoryCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "categoryVisitsInPageNavigationCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "classifierResults": { "additionalProperties": { "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "facebookReshareSource": { - "type": "string" + "type": [ + "string", + "null" + ] }, "shareAudience": { "enum": [ "public", "restricted", - "unknown" + "unknown", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "sharedTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitSourceFromTransitions": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "untrackedSharesCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.surveyId": { "description": "ID sent to Qualtrics, for associating survey responses with telemetry data", - "type": "string" + "type": [ + "string", + "null" + ] }, "newsAndDisinfo.version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" diff --git a/schemas/pioneer-citp-news-disinfo-two/rallymeasurements/rallymeasurements.2.schema.json b/schemas/pioneer-citp-news-disinfo-two/rallymeasurements/rallymeasurements.2.schema.json index 350c77867..4694f0236 100644 --- a/schemas/pioneer-citp-news-disinfo-two/rallymeasurements/rallymeasurements.2.schema.json +++ b/schemas/pioneer-citp-news-disinfo-two/rallymeasurements/rallymeasurements.2.schema.json @@ -19,27 +19,48 @@ "additionalProperties": false, "properties": { "categoryExposuresCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "exposureDestinationTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "exposureSourceTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.methodology": { "additionalProperties": false, @@ -49,81 +70,156 @@ "additionalProperties": false, "properties": { "attentionDwellTime": { - "type": "number" + "type": [ + "number", + "null" + ] }, "attentionDwellTimePlus": { - "type": "number" + "type": [ + "number", + "null" + ] }, "attentionTimeToNextLoad": { - "type": "number" + "type": [ + "number", + "null" + ] }, "attentionWebScience": { - "type": "number" + "type": [ + "number", + "null" + ] }, "dayOfMonthStart": { - "type": "number" + "type": [ + "number", + "null" + ] }, "isHistoryChange": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "monthOfYearStart": { - "type": "number" + "type": [ + "number", + "null" + ] }, "parentHistory": { - "type": "string" + "type": [ + "string", + "null" + ] }, "parentLoadTime": { - "type": "string" + "type": [ + "string", + "null" + ] }, "parentLoadTimeToHistory": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "parentReferrer": { - "type": "string" + "type": [ + "string", + "null" + ] }, "parentReferrerPathPresent": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "parentReferrerToHistory": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "parentReferrerToLoadTime": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "parentWebScience": { - "type": "string" + "type": [ + "string", + "null" + ] }, "parentWebSciencePathPresent": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "parentWebScienceToHistory": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "parentWebScienceToLoadTime": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "parentWebScienceToReferrer": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "prevTTNL": { - "type": "number" + "type": [ + "number", + "null" + ] }, "timeOfDayStart": { - "type": "number" + "type": [ + "number", + "null" + ] }, "visitTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "yearStart": { - "type": "number" + "type": [ + "number", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.pageNavigation": { "additionalProperties": false, @@ -133,49 +229,88 @@ "additionalProperties": false, "properties": { "categoryAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryScroll": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryVisitsCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "classifierResults": { "additionalProperties": { "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "sourceTrimmedUrlFromReferrer": { - "type": "string" + "type": [ + "string", + "null" + ] }, "sourceTrimmedUrlFromTransitions": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "untrackedAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "untrackedVisitsCount": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.socialMediaLinkSharing": { "additionalProperties": false, @@ -188,78 +323,134 @@ "enum": [ "facebook", "twitter", - "reddit" + "reddit", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "trackedSharesByCategory": { "items": { "additionalProperties": false, "properties": { "categorySharesCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "categoryVisitAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryVisitsInHistoryCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "categoryVisitsInPageNavigationCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "classifierResults": { "additionalProperties": { "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "facebookReshareSource": { - "type": "string" + "type": [ + "string", + "null" + ] }, "shareAudience": { "enum": [ "public", "restricted", - "unknown" + "unknown", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "sharedTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitSourceFromTransitions": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "untrackedSharesCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.surveyId": { "description": "ID sent to Qualtrics, for associating survey responses with telemetry data", - "type": "string" + "type": [ + "string", + "null" + ] }, "newsAndDisinfo.version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" diff --git a/schemas/pioneer-citp-news-disinfo/measurements/measurements.1.schema.json b/schemas/pioneer-citp-news-disinfo/measurements/measurements.1.schema.json index 31b20f7e1..03bac7c71 100644 --- a/schemas/pioneer-citp-news-disinfo/measurements/measurements.1.schema.json +++ b/schemas/pioneer-citp-news-disinfo/measurements/measurements.1.schema.json @@ -18,33 +18,60 @@ "additionalProperties": false, "properties": { "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "destinationDomain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "laterSharedCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "laterVisitedCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "numExposures": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "sourceDomain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visThreshold": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "untrackedLinkExposures": { "additionalProperties": { @@ -53,26 +80,41 @@ "propertyNames": { "pattern": "^[0-9]*$" }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "WebScience.Measurements.PageNavigation": { "additionalProperties": false, "properties": { "numUntrackedVisits": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "trackedVisitsByDomain": { "items": { "additionalProperties": false, "properties": { "domain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "numSessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitsByReferrer": { "items": { @@ -83,48 +125,87 @@ "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "laterSharedCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "numVisits": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "pageCategory": { "description": "deprecated, use classifierResults", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "prevExposedCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "referrerDomain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "totalAttention": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "totalScroll": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "WebScience.Measurements.SocialMediaLinkSharing": { "additionalProperties": false, @@ -134,15 +215,22 @@ "additionalProperties": false, "properties": { "numUntrackedShares": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "platform": { "enum": [ "facebook", "twitter", - "reddit" + "reddit", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "trackedShares": { "items": { @@ -152,65 +240,114 @@ "enum": [ "public", "restricted", - "unknown" + "unknown", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "classification": { "description": "deprecated, use classifierResults", - "type": "string" + "type": [ + "string", + "null" + ] }, "classifierResults": { "additionalProperties": { "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "domain": { - "type": "string" + "type": [ + "string", + "null" + ] }, "numShares": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "pageClassification": { "description": "deprecated, use classifierResults", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "prevExposed": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "source": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitReferrer": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "WebScience.SurveyId": { "description": "ID sent to Qualtrics, for associating survey responses with telemetry data", - "type": "string" + "type": [ + "string", + "null" + ] }, "WebScience.version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" diff --git a/schemas/pioneer-citp-news-disinfo/rallymeasurements/rallymeasurements.1.schema.json b/schemas/pioneer-citp-news-disinfo/rallymeasurements/rallymeasurements.1.schema.json index f3eae6ec5..447a79755 100644 --- a/schemas/pioneer-citp-news-disinfo/rallymeasurements/rallymeasurements.1.schema.json +++ b/schemas/pioneer-citp-news-disinfo/rallymeasurements/rallymeasurements.1.schema.json @@ -19,27 +19,48 @@ "additionalProperties": false, "properties": { "categoryExposuresCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "exposureDestinationTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "exposureSourceTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.pageNavigation": { "additionalProperties": false, @@ -49,49 +70,88 @@ "additionalProperties": false, "properties": { "categoryAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryScroll": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryVisitsCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "classifierResults": { "additionalProperties": { "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "sourceTrimmedUrlFromReferrer": { - "type": "string" + "type": [ + "string", + "null" + ] }, "sourceTrimmedUrlFromTransitions": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "untrackedAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "untrackedVisitsCount": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.socialMediaLinkSharing": { "additionalProperties": false, @@ -104,78 +164,134 @@ "enum": [ "facebook", "twitter", - "reddit" + "reddit", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "trackedSharesByCategory": { "items": { "additionalProperties": false, "properties": { "categorySharesCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "categoryVisitAttention": { - "type": "number" + "type": [ + "number", + "null" + ] }, "categoryVisitsInHistoryCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "categoryVisitsInPageNavigationCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "classifierResults": { "additionalProperties": { "type": "integer" }, "description": "additional properties are the name of the classifier, with the classification result as the value", - "type": "object" + "type": [ + "object", + "null" + ] }, "dayOfWeek": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "facebookReshareSource": { - "type": "string" + "type": [ + "string", + "null" + ] }, "shareAudience": { "enum": [ "public", "restricted", - "unknown" + "unknown", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "sharedTrimmedUrl": { - "type": "string" + "type": [ + "string", + "null" + ] }, "timeOfDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "visitSourceFromTransitions": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "untrackedSharesCount": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "newsAndDisinfo.surveyId": { "description": "ID sent to Qualtrics, for associating survey responses with telemetry data", - "type": "string" + "type": [ + "string", + "null" + ] }, "newsAndDisinfo.version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" diff --git a/schemas/pioneer-core/demographic-survey/demographic-survey.1.schema.json b/schemas/pioneer-core/demographic-survey/demographic-survey.1.schema.json index 756748509..1db9e0cc2 100644 --- a/schemas/pioneer-core/demographic-survey/demographic-survey.1.schema.json +++ b/schemas/pioneer-core/demographic-survey/demographic-survey.1.schema.json @@ -14,169 +14,316 @@ "additionalProperties": false, "properties": { "19_24": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "25_34": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "35_44": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "45_54": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "55_64": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "over_65": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "education": { "additionalProperties": false, "properties": { "associates_degree": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "bachelors_degree": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "graduate_degree": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "high_school_graduate_or_equivalent": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "less_than_high_school": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "some_college_but_no_degree_or_in_progress": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "some_high_school": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "exactIncome": { "description": "https://github.com/mozilla-rally/rally-core-addon/pull/624 - new exactIncome field for Rally Core Add-On demographic survey", - "type": "number" + "type": [ + "number", + "null" + ] }, "gender": { "additionalProperties": false, "properties": { "decline": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "female": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "male": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "neither": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "income": { "additionalProperties": false, "description": "this field has been deprecated in favor of exactIncome", "properties": { "0_24999": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "100000_149999": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "25000_49999": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "50000_74999": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "75000_99999": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "ge_150000": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "origin": { "additionalProperties": false, "properties": { "hispanicLatinoSpanish": { "description": "This field is deprecated in favour of hispanicLatinxSpanish", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "hispanicLatinxSpanish": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "other": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "races": { "additionalProperties": false, "properties": { "american_indian_or_alaska_native": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "asian_indian": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "black_or_african_american": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "chamorro": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "chinese": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "filipino": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "japanese": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "korean": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "native_hawaiian": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "other_asian": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "other_pacific_islander": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "samoan": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "some_other_race": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "vietnamese": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "white": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "zipCode": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "title": "demographic-survey", diff --git a/schemas/pioneer-core/uninstall-deletion/uninstall-deletion.1.schema.json b/schemas/pioneer-core/uninstall-deletion/uninstall-deletion.1.schema.json index ffd804eb9..080f955ee 100644 --- a/schemas/pioneer-core/uninstall-deletion/uninstall-deletion.1.schema.json +++ b/schemas/pioneer-core/uninstall-deletion/uninstall-deletion.1.schema.json @@ -11,7 +11,10 @@ }, "properties": { "deletionId": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "title": "uninstall-deletion", diff --git a/schemas/pioneer-sgsb-beyond-the-paywall/advertisement/advertisement.1.schema.json b/schemas/pioneer-sgsb-beyond-the-paywall/advertisement/advertisement.1.schema.json index f0acd8cf7..f64c4b897 100644 --- a/schemas/pioneer-sgsb-beyond-the-paywall/advertisement/advertisement.1.schema.json +++ b/schemas/pioneer-sgsb-beyond-the-paywall/advertisement/advertisement.1.schema.json @@ -16,50 +16,80 @@ "properties": { "clientHeight": { "description": "The calculated height of the ad HTML element in pixels", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "clientWidth": { "description": "The calculated width of the ad HTML element in pixels", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "height": { "description": "The height of the HTML element, as listed in it's style attributes", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "The ID of the ad, if listed in the HTML element", - "type": "string" + "type": [ + "string", + "null" + ] }, "tag": { "description": "The HTML tag type that the ad was in", - "type": "string" + "type": [ + "string", + "null" + ] }, "width": { "description": "The width of the HTML element, as listed in it's style attributes", - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "body": { "description": "This object contains two properties listed below about the tag of the page. This is needed to normalize the size of advertisments against full page size.", "properties": { "clientHeight": { "description": "The calculated height in pixels of the tag", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "clientWidth": { "description": "The calculated width in pixels of the tag", - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, "tabId": { "description": "The ID of the tab this data was collected from", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "type": { "description": "the type of event recorded. Either WebScience.advertisements, WebScience.articleContents, WebScience.pageNav, or WebScience.pageNavSensitive", @@ -74,7 +104,10 @@ }, "url": { "description": "The URL of the page visited", - "type": "string" + "type": [ + "string", + "null" + ] }, "userId": { "description": "a unique ID associated with a participant.", diff --git a/schemas/pioneer-sgsb-beyond-the-paywall/page-nav-sensitive/page-nav-sensitive.1.schema.json b/schemas/pioneer-sgsb-beyond-the-paywall/page-nav-sensitive/page-nav-sensitive.1.schema.json index fec307ee9..822c02bcb 100644 --- a/schemas/pioneer-sgsb-beyond-the-paywall/page-nav-sensitive/page-nav-sensitive.1.schema.json +++ b/schemas/pioneer-sgsb-beyond-the-paywall/page-nav-sensitive/page-nav-sensitive.1.schema.json @@ -12,7 +12,10 @@ "properties": { "attentionDuration": { "description": "duration (in ms) that the page was in attentive view", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "domain": { "description": "The URL of the page visited. This URL has been stripped to only include the domain", diff --git a/schemas/pocket/fire-tv-events/fire-tv-events.1.schema.json b/schemas/pocket/fire-tv-events/fire-tv-events.1.schema.json index 48debac6a..3e4cef4ca 100644 --- a/schemas/pocket/fire-tv-events/fire-tv-events.1.schema.json +++ b/schemas/pocket/fire-tv-events/fire-tv-events.1.schema.json @@ -10,7 +10,10 @@ "type": "integer" }, "device": { - "type": "string" + "type": [ + "string", + "null" + ] }, "events": { "items": { diff --git a/schemas/rally-zero-one/measurements/measurements.1.schema.json b/schemas/rally-zero-one/measurements/measurements.1.schema.json index 1d523dc4d..5b846ddc8 100644 --- a/schemas/rally-zero-one/measurements/measurements.1.schema.json +++ b/schemas/rally-zero-one/measurements/measurements.1.schema.json @@ -41,11 +41,17 @@ }, "maxPixelScrollDepth": { "description": "The largest scroll pixel depth reached on the page", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "maxRelativeScrollDepth": { "description": "The largest depth reach on the page, as a proportion of the total page height", - "type": "number" + "type": [ + "number", + "null" + ] }, "ogType": { "description": "the og:type meta tag contents (e.g. )", @@ -65,7 +71,10 @@ }, "pageVisitStopTime": { "description": "unix timestamp (in ms) of the page visit end. NOTE: this field will not necessarily represent the page visit stop time, just the largest time value at the time of the event creation. For a given page id, look for the largest value of pageVisitStopTime to get more accurate information.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "referrerOrigin": { "description": "the origin of the referrer URL for the page loading in the tab, or `\"\"` if there is no referrer.", @@ -73,7 +82,10 @@ }, "scrollHeight": { "description": "the total scroll height of the page, taken from document.documentElement.scrollHeight at the same interval as the other scroll fields.", - "type": "number" + "type": [ + "number", + "null" + ] }, "title": { "description": "the contents of the title element in the head of the page", diff --git a/schemas/regrets-reporter/regrets-reporter-update/regrets-reporter-update.1.schema.json b/schemas/regrets-reporter/regrets-reporter-update/regrets-reporter-update.1.schema.json index e69e1f6bb..999e6f44a 100644 --- a/schemas/regrets-reporter/regrets-reporter-update/regrets-reporter-update.1.schema.json +++ b/schemas/regrets-reporter/regrets-reporter-update/regrets-reporter-update.1.schema.json @@ -10,55 +10,100 @@ "data_deletion_request": { "properties": { "extension_installation_error_reporting_uuid": { - "type": "string" + "type": [ + "string", + "null" + ] }, "extension_installation_uuid": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "event_metadata": { "properties": { "browser_info": { "properties": { "build_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "vendor": { - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "client_timestamp": { - "type": "string" + "type": [ + "string", + "null" + ] }, "event_uuid": { - "type": "string" + "type": [ + "string", + "null" + ] }, "extension_installation_uuid": { - "type": "string" + "type": [ + "string", + "null" + ] }, "extension_version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "total_amount_of_regret_reports": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "regret_report": { "properties": { "form_step": { - "type": "number" + "type": [ + "number", + "null" + ] }, "report_data": { "properties": { @@ -67,7 +112,10 @@ "description": "Selected/derived attributes from YouTubeNavigations", "properties": { "document_visible_time": { - "type": "number" + "type": [ + "number", + "null" + ] }, "page_entry_point": { "enum": [ @@ -80,9 +128,13 @@ "search_results_page", "user_page", "watch_page", - "youtube_main_page" + "youtube_main_page", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "url_type": { "enum": [ @@ -98,58 +150,104 @@ "unknown", "user_page", "watch_page", - "youtube_main_page" + "youtube_main_page", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] }, "video_element_play_time": { - "type": "number" + "type": [ + "number", + "null" + ] }, "video_metadata": { "properties": { "video_description": { - "type": "string" + "type": [ + "string", + "null" + ] }, "video_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "video_posting_date": { - "type": "string" + "type": [ + "string", + "null" + ] }, "video_title": { - "type": "string" + "type": [ + "string", + "null" + ] }, "view_count_at_navigation": { - "type": "number" + "type": [ + "number", + "null" + ] }, "view_count_at_navigation_short": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "report_data_uuid": { - "type": "string" + "type": [ + "string", + "null" + ] }, "youtube_navigation_metadata": { "description": "Selected/derived attributes from YouTubeNavigations", "properties": { "document_visible_time": { - "type": "number" + "type": [ + "number", + "null" + ] }, "page_entry_point": { "enum": [ @@ -162,9 +260,13 @@ "search_results_page", "user_page", "watch_page", - "youtube_main_page" + "youtube_main_page", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "url_type": { "enum": [ @@ -180,300 +282,562 @@ "unknown", "user_page", "watch_page", - "youtube_main_page" + "youtube_main_page", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] }, "video_element_play_time": { - "type": "number" + "type": [ + "number", + "null" + ] }, "video_metadata": { "properties": { "video_description": { - "type": "string" + "type": [ + "string", + "null" + ] }, "video_id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "video_posting_date": { - "type": "string" + "type": [ + "string", + "null" + ] }, "video_title": { - "type": "string" + "type": [ + "string", + "null" + ] }, "view_count_at_navigation": { - "type": "number" + "type": [ + "number", + "null" + ] }, "view_count_at_navigation_short": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "youtube_usage_statistics_update": { "properties": { "amount_of_days_of_at_least_one_video_played_on_a_youtube_watch_page": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_days_with_at_least_one_youtube_visit": { - "type": "number" + "type": [ + "number", + "null" + ] }, "amount_of_days_with_at_least_one_youtube_watch_page_load": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_time_with_an_active_youtube_tab": { - "type": "number" + "type": [ + "number", + "null" + ] }, "amount_of_time_with_an_active_youtube_watch_page_tab": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_youtube_video_play_time": { - "type": "number" + "type": [ + "number", + "null" + ] }, "amount_of_youtube_video_play_time_on_youtube_watch_pages": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_youtube_videos_played_on_youtube_watch_pages": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_youtube_watch_pages_loaded": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "user_supplied_optional_comment": { - "type": "string" + "type": [ + "string", + "null" + ] }, "user_supplied_other_regret_category": { - "type": "string" + "type": [ + "string", + "null" + ] }, "user_supplied_regret_categories": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "user_supplied_severity": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "youtube_usage_statistics_update": { "properties": { "amount_of_days_of_at_least_one_video_played_on_a_youtube_watch_page": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_days_with_at_least_one_youtube_visit": { - "type": "number" + "type": [ + "number", + "null" + ] }, "amount_of_days_with_at_least_one_youtube_watch_page_load": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_time_with_an_active_youtube_tab": { - "type": "number" + "type": [ + "number", + "null" + ] }, "amount_of_time_with_an_active_youtube_watch_page_tab": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_youtube_video_play_time": { - "type": "number" + "type": [ + "number", + "null" + ] }, "amount_of_youtube_video_play_time_on_youtube_watch_pages": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_youtube_videos_played_on_youtube_watch_pages": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "amount_of_youtube_watch_pages_loaded": { "properties": { "in_total": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_non_search_algorithmic_recommendations_content": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_recommendations_with_an_explicit_query_or_constraint_to_optimize_for": { - "type": "number" + "type": [ + "number", + "null" + ] }, "via_search_results": { - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "title": "regrets-reporter-update", diff --git a/schemas/telemetry/anonymous/anonymous.4.schema.json b/schemas/telemetry/anonymous/anonymous.4.schema.json index cdec563d9..6066dd652 100644 --- a/schemas/telemetry/anonymous/anonymous.4.schema.json +++ b/schemas/telemetry/anonymous/anonymous.4.schema.json @@ -21,7 +21,10 @@ }, "displayVersion": { "pattern": "^[0-9]{2,3}\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "type": "string" @@ -51,34 +54,53 @@ "vendor", "xpcomAbi" ], - "type": "object" + "type": [ + "object", + "null" + ] }, "creationDate": { "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "payload": { "properties": { "client": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, "type": { "enum": [ - "anonymous" + "anonymous", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "maximum": 4, "minimum": 4, - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ diff --git a/schemas/telemetry/bhr/bhr.4.schema.json b/schemas/telemetry/bhr/bhr.4.schema.json index 9e14aa9db..eb8aeee23 100644 --- a/schemas/telemetry/bhr/bhr.4.schema.json +++ b/schemas/telemetry/bhr/bhr.4.schema.json @@ -22,7 +22,10 @@ }, "displayVersion": { "pattern": "^[0-9]{2,3}\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "type": "string" @@ -52,15 +55,24 @@ "vendor", "xpcomAbi" ], - "type": "object" + "type": [ + "object", + "null" + ] }, "clientId": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "creationDate": { "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$", - "type": "string" + "type": [ + "string", + "null" + ] }, "environment": { "properties": { @@ -169,18 +181,30 @@ }, "type": "object" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "activeExperiment": { "properties": { "branch": { - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "activeGMPlugins": { "additionalProperties": { @@ -203,42 +227,72 @@ }, "type": "object" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "activePlugins": { "items": { "properties": { "blocklisted": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "clicktoplay": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { - "type": "string" + "type": [ + "string", + "null" + ] }, "disabled": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "mimeTypes": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "updateDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "persona": { "description": "The id of the active persona (theme).", @@ -251,11 +305,17 @@ "properties": { "appDisabled": { "description": "True if this theme cannot be used in the application based on version compatibility, dependencies, and blocklisting.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "blocklisted": { "description": "Whether or not the theme appears in the blocklist.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "type": [ @@ -267,16 +327,23 @@ "description": "True or false depending on whether the theme is a third party theme installation or not.", "type": [ "boolean", - "integer" + "integer", + "null" ] }, "hasBinaryComponents": { "description": "True or false depending on whether the theme has binary components. This is always false since Firefox 60.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "id": { "description": "The id of the theme.", - "type": "string" + "type": [ + "string", + "null" + ] }, "installDay": { "description": "The days since epoch that the theme was first installed.", @@ -288,11 +355,17 @@ }, "name": { "description": "The theme name, limited to 100 characters.", - "type": "string" + "type": [ + "string", + "null" + ] }, "scope": { "description": "Indicates what scope the theme is installed in, per profile, user, system, or application.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "updateDay": { "description": "The day the theme was last updated.", @@ -304,17 +377,29 @@ }, "userDisabled": { "description": "Whether or not the user disabled the theme.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "version": { "description": "The version of the theme.", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "build": { "properties": { @@ -332,7 +417,10 @@ }, "architecturesInBinary": { "description": "For Mac universal builds, this is a string containing a list of architectures delimited by '-'. Architecture sets are always in the same order: ppc > i386 > ppc64 > x86_64 > (future additions). This is only available on Mac.", - "type": "string" + "type": [ + "string", + "null" + ] }, "buildId": { "description": "The build ID/date of the application.", @@ -342,7 +430,10 @@ "displayVersion": { "description": "The display version of the application.", "pattern": "^[0-9]{2,3}\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "hotfixVersion": { "type": [ @@ -357,7 +448,10 @@ }, "updaterAvailable": { "description": "True if the application was built with the support for the updater component.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "vendor": { "description": "The application vendor.", @@ -403,7 +497,10 @@ }, "type": "object" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "partner": { "properties": { @@ -447,7 +544,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "type": "object" @@ -456,85 +556,148 @@ "properties": { "creationDate": { "description": "The creation date of the user profile as the integer number of days since UNIX epoch.", - "type": "number" + "type": [ + "number", + "null" + ] }, "firstUseDate": { - "type": "number" + "type": [ + "number", + "null" + ] }, "isStubProfile": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "resetDate": { "description": "The date the user profile was reset, as the integer number of days since UNIX epoch. This is optional.", - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "services": { "properties": { "accountEnabled": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "syncEnabled": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings": { "properties": { "addonCompatibilityCheckEnabled": { "description": "Whether application compatibility is respected for add-ons.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "attribution": { "properties": { "campaign": { "description": "Identifier of the particular campaign that led to the download of the product.", - "type": "string" + "type": [ + "string", + "null" + ] }, "content": { "description": "Identifier to indicate the particular link within a campaign.", - "type": "string" + "type": [ + "string", + "null" + ] }, "dlsource": { "description": "Identifier that indicates where installations of Firefox originate, see bug 1827233", - "type": "string" + "type": [ + "string", + "null" + ] }, "dltoken": { "description": "Unique token created at Firefox download time, see bug 1677497", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiment": { "description": "funnel experiment parameters, see bug 1567339", - "type": "string" + "type": [ + "string", + "null" + ] }, "medium": { "description": "Category of the source, such as 'organic' for a search engine.", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "Referring partner domain, when install happens via a known partner.", - "type": "string" + "type": [ + "string", + "null" + ] }, "ua": { "description": "derived user agent, see bug 1595063", - "type": "string" + "type": [ + "string", + "null" + ] }, "variation": { "description": "funnel experiment parameters, see bug 1567339", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "blocklistEnabled": { "description": "True if the blocklist is enabled.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultPrivateSearchEngine": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultPrivateSearchEngineData": { "properties": { @@ -545,20 +708,35 @@ ] }, "name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "origin": { - "type": "string" + "type": [ + "string", + "null" + ] }, "submissionURL": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "defaultSearchEngine": { "description": "Contains the string identifier or name of the default search engine provider. Deprecated.", - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultSearchEngineData": { "properties": { @@ -571,33 +749,57 @@ }, "name": { "description": "The name of the default search engine.", - "type": "string" + "type": [ + "string", + "null" + ] }, "origin": { "description": "The origin of the search engine: the value will be default for engines that are built-in or from distribution partners, verified for user-installed engines with valid verification hashes, unverified for non-default engines without verification hash, and invalid for engines with broken verification hashes.", - "type": "string" + "type": [ + "string", + "null" + ] }, "submissionURL": { "description": "The HTTP url we would use to search. For privacy, we don’t record this for user-installed engines.", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "e10sCohort": { - "type": "string" + "type": [ + "string", + "null" + ] }, "e10sEnabled": { "description": "True if the E10S is enabled.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "e10sMultiProcesses": { "description": "maximum number of processes that will be launched for regular web content", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "fissionEnabled": { "description": "whether fission is enabled this session, and subframes can load in a different process", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "intl": { "properties": { @@ -605,19 +807,28 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "appLocales": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "availableLocales": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "regionalPrefsLocales": { "items": { @@ -632,7 +843,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "systemLocales": { "items": { @@ -644,7 +858,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isDefaultBrowser": { "description": "Identifier to indicate the particular link within a campaign.", @@ -660,11 +877,17 @@ ] }, "launcherProcessState": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "locale": { "description": "The best locale that the application should be localized to.", - "type": "string" + "type": [ + "string", + "null" + ] }, "sandbox": { "properties": { @@ -683,7 +906,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "searchCohort": { "type": [ @@ -693,28 +919,46 @@ }, "telemetryEnabled": { "description": "The state of the `toolkit.telemetry.enabled` pref.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "update": { "properties": { "autoDownload": { "description": "The state of the `app.update.auto` pref.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "background": { "description": "Indicates whether updates may be installed when Firefox is not running.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "channel": { "description": "The update channel from the defaults only. Does not include the partner bits.", - "type": "string" + "type": [ + "string", + "null" + ] }, "enabled": { "description": "The state of the `app.update.enabled` pref.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "userPrefs": { "additionalProperties": { @@ -725,7 +969,10 @@ "null" ] }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "type": "object" @@ -754,14 +1001,20 @@ "description": "The number of logical CPUs. Desktop only, e.g. 8, or `null` on failure.", "maximum": 1024, "minimum": 1, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "extensions": { "description": "This lists the avaible CPU extensions as strings. E.g.: 'hasMMX', 'hasSSE', 'hasSSE2', 'hasSSE3', 'hasSSSE3', 'hasSSE4A', 'hasSSE4_1', 'hasSSE4_2', 'hasAVX', 'hasAVX2', 'hasAES', 'hasEDSP', 'hasARMv6', 'hasARMv7', 'hasNEON'.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "family": { "description": "The CPU family, `null` on failure. Desktop only.", @@ -772,7 +1025,10 @@ }, "isWindowsSMode": { "description": "Whether or not the system is Windows 10 or 11 in S Mode. S Mode existed prior to us being able to query it, so this is unreliable on Windows versions prior to 1810.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "l2cacheKB": { "description": "The CPU L2 cache size in KB. `null` on failure. Desktop only.", @@ -824,30 +1080,51 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "device": { "properties": { "hardware": { - "type": "string" + "type": [ + "string", + "null" + ] }, "isTablet": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "manufacturer": { - "type": "string" + "type": [ + "string", + "null" + ] }, "model": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "gfx": { "properties": { "ContentBackend": { "description": "The name of the content backend.", - "type": "string" + "type": [ + "string", + "null" + ] }, "D2DEnabled": { "description": "Whether or not Direct2D is enabled. This is Windows only.", @@ -877,11 +1154,17 @@ ] }, "LowEndMachine": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "TargetFrameRate": { "description": "Frame rate in Hz, typically 60 or more, see bug 1840381", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "adapters": { "items": { @@ -949,7 +1232,10 @@ }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "features": { "properties": { @@ -968,7 +1254,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "compositor": { "description": "The name of the compositor. This is one of 'd3d9', 'd3d11', 'opengl', 'basic', or 'none' ('none' indicates no compositors have been created).", @@ -992,7 +1281,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "d3d11": { "properties": { @@ -1035,7 +1327,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "gpuProcess": { "properties": { @@ -1046,7 +1341,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "hwCompositing": { "properties": { @@ -1057,7 +1355,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "omtp": { "description": "Indicates whether the off-main-thread painting is enabled.", @@ -1069,7 +1370,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "openglCompositing": { "properties": { @@ -1080,7 +1384,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "webrender": { "properties": { @@ -1091,7 +1398,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "wrCompositor": { "properties": { @@ -1102,7 +1412,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "wrQualified": { "properties": { @@ -1113,7 +1426,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "wrSoftware": { "description": "Indicates whether the software backend to WebRender is enabled.", @@ -1125,36 +1441,63 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "monitors": { "items": { "properties": { "pseudoDisplay": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "refreshRate": { - "type": "number" + "type": [ + "number", + "null" + ] }, "scale": { - "type": "number" + "type": [ + "number", + "null" + ] }, "screenHeight": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "screenWidth": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "hasWinPackageId": { "description": "Is the process running with a package identity (e.g. from an MSIX install)? See bug 1709892. This is Windows only.", @@ -1193,7 +1536,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "profile": { "properties": { @@ -1223,7 +1569,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "system": { "properties": { @@ -1253,14 +1602,23 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isWow64": { "description": "The availability of the WoW64 subsystem. This is Windows only.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "isWowARM64": { "type": [ @@ -1270,7 +1628,10 @@ }, "memoryMB": { "description": "The machines amount of RAM.", - "type": "number" + "type": [ + "number", + "null" + ] }, "os": { "properties": { @@ -1311,33 +1672,52 @@ }, "kernelVersion": { "description": "The kernel version of Android. This is Android only. `null` on failure.", - "type": "string" + "type": [ + "string", + "null" + ] }, "locale": { "description": "The locale of the OS, e.g. 'en'. This is `null` on failure.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The name of the OS, e.g. 'Windows_NT'. This is `null` on failure.", - "type": "string" + "type": [ + "string", + "null" + ] }, "servicePackMajor": { "description": "The Windows service pack major version. This is Windows only. `null` on failure.", - "type": "number" + "type": [ + "number", + "null" + ] }, "servicePackMinor": { "description": "The Windows service pack minor version. This is Windows only. `null` on failure.", - "type": "number" + "type": [ + "number", + "null" + ] }, "version": { "description": "The version of the OS, e.g. '6.1'. This is `null` on failure.", "type": [ - "string" + "string", + "null" ] }, "windowsBuildNumber": { "description": "The Windows build number. This is Windows only. `null` on failure.", - "type": "number" + "type": [ + "number", + "null" + ] }, "windowsUBR": { "description": "The Windows UBR. This is Windows 10 only. `null` on failure.", @@ -1347,7 +1727,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sec": { "properties": { @@ -1382,7 +1765,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "virtualMaxMB": { "description": "Total virtual memory size in MB. This is Windows only. `null` on failure.", @@ -1408,11 +1794,17 @@ "settings", "system" ], - "type": "object" + "type": [ + "object", + "null" + ] }, "id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "payload": { "properties": { @@ -1432,14 +1824,23 @@ ], "type": "array" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "duration": { "minimum": 0.0, - "type": "number" + "type": [ + "number", + "null" + ] }, "process": { - "type": "string" + "type": [ + "string", + "null" + ] }, "remoteType": { "type": [ @@ -1448,15 +1849,24 @@ ] }, "runnableName": { - "type": "string" + "type": [ + "string", + "null" + ] }, "thread": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "modules": { "items": { @@ -1471,24 +1881,40 @@ ], "type": "array" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "timeSinceLastPing": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "type": { "enum": [ - "bhr" + "bhr", + null ], - "type": "string" + "type": [ + "string", + "null" + ] }, "version": { "maximum": 4, "minimum": 4, - "type": "number" + "type": [ + "number", + "null" + ] } }, "title": "bhr", diff --git a/schemas/telemetry/block-autoplay/block-autoplay.1.schema.json b/schemas/telemetry/block-autoplay/block-autoplay.1.schema.json index a44a596c2..fa33fe8c8 100644 --- a/schemas/telemetry/block-autoplay/block-autoplay.1.schema.json +++ b/schemas/telemetry/block-autoplay/block-autoplay.1.schema.json @@ -21,7 +21,10 @@ }, "displayVersion": { "pattern": "^[0-9]{2,3}\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "type": "string" diff --git a/schemas/telemetry/core/core.1.schema.json b/schemas/telemetry/core/core.1.schema.json index eae66e2c1..a378a6bcd 100644 --- a/schemas/telemetry/core/core.1.schema.json +++ b/schemas/telemetry/core/core.1.schema.json @@ -20,7 +20,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "locale": { "type": "string" diff --git a/schemas/telemetry/core/core.10.schema.json b/schemas/telemetry/core/core.10.schema.json index 936fe34da..76c906147 100644 --- a/schemas/telemetry/core/core.10.schema.json +++ b/schemas/telemetry/core/core.10.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/core/core.2.schema.json b/schemas/telemetry/core/core.2.schema.json index 63d375b15..76d8c5bde 100644 --- a/schemas/telemetry/core/core.2.schema.json +++ b/schemas/telemetry/core/core.2.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/core/core.3.schema.json b/schemas/telemetry/core/core.3.schema.json index d40eedc0e..845140048 100644 --- a/schemas/telemetry/core/core.3.schema.json +++ b/schemas/telemetry/core/core.3.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/core/core.4.schema.json b/schemas/telemetry/core/core.4.schema.json index 81f0d58c9..4d1d67d2c 100644 --- a/schemas/telemetry/core/core.4.schema.json +++ b/schemas/telemetry/core/core.4.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/core/core.5.schema.json b/schemas/telemetry/core/core.5.schema.json index a7c8b93a2..de90829ef 100644 --- a/schemas/telemetry/core/core.5.schema.json +++ b/schemas/telemetry/core/core.5.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/core/core.6.schema.json b/schemas/telemetry/core/core.6.schema.json index cfe820973..dc941f178 100644 --- a/schemas/telemetry/core/core.6.schema.json +++ b/schemas/telemetry/core/core.6.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/core/core.7.schema.json b/schemas/telemetry/core/core.7.schema.json index b7df9afe0..c7fbd07b3 100644 --- a/schemas/telemetry/core/core.7.schema.json +++ b/schemas/telemetry/core/core.7.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/core/core.8.schema.json b/schemas/telemetry/core/core.8.schema.json index 40e6633e5..aaa4e5222 100644 --- a/schemas/telemetry/core/core.8.schema.json +++ b/schemas/telemetry/core/core.8.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/core/core.9.schema.json b/schemas/telemetry/core/core.9.schema.json index 8b9d4455d..9171c8340 100644 --- a/schemas/telemetry/core/core.9.schema.json +++ b/schemas/telemetry/core/core.9.schema.json @@ -10,16 +10,25 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "arch": { "type": "string" }, "bug_1501329_affected": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "campaign": { - "type": "string" + "type": [ + "string", + "null" + ] }, "campaignId": { "type": [ @@ -32,10 +41,16 @@ "type": "string" }, "created": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultBrowser": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultMailClient": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -62,31 +77,52 @@ }, "displayVersion": { "pattern": "^[0-9]+\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "distributionId": { - "type": "string" + "type": [ + "string", + "null" + ] }, "durations": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "enhancedSearchReady": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchUsed": { "description": "Added in bug 1612935.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "enhancedSearchVersion": { "description": "Added in bug 1612935.", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiments": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "fennec": { "enhancedSearchReady": { @@ -129,7 +165,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "new_tab": { "properties": { @@ -146,7 +185,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "page_options": { "properties": { @@ -193,7 +235,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_advanced": { "properties": { @@ -216,7 +261,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_general": { "properties": { @@ -283,7 +331,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "tab_queue": { "type": [ @@ -298,7 +349,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_notifications": { "properties": { @@ -309,7 +363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings_privacy": { "properties": { @@ -332,7 +389,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sync": { "properties": { @@ -343,13 +403,22 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "flashUsage": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "landings": { "description": "Added in bug 1640700.", @@ -375,23 +444,35 @@ "type": "string" }, "profileDate": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "searches": { "additionalProperties": { "type": "integer" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "seq": { "minimum": 0, "type": "integer" }, "sessions": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "showTrackerStatsShare": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "systemTheme": { "description": "Sent from Firefox iOS. Added in bug 1627843", @@ -401,7 +482,10 @@ ] }, "tz": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "v": { "enum": [ diff --git a/schemas/telemetry/crash/crash.4.schema.json b/schemas/telemetry/crash/crash.4.schema.json index a2c49ce5a..ce3172e54 100644 --- a/schemas/telemetry/crash/crash.4.schema.json +++ b/schemas/telemetry/crash/crash.4.schema.json @@ -21,7 +21,10 @@ }, "displayVersion": { "pattern": "^[0-9]{2,3}\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "type": "string" @@ -55,7 +58,10 @@ }, "clientId": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", - "type": "string" + "type": [ + "string", + "null" + ] }, "creationDate": { "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$", @@ -168,18 +174,30 @@ }, "type": "object" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "activeExperiment": { "properties": { "branch": { - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "activeGMPlugins": { "additionalProperties": { @@ -202,42 +220,72 @@ }, "type": "object" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "activePlugins": { "items": { "properties": { "blocklisted": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "clicktoplay": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { - "type": "string" + "type": [ + "string", + "null" + ] }, "disabled": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "mimeTypes": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "updateDay": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "persona": { "description": "The id of the active persona (theme).", @@ -250,11 +298,17 @@ "properties": { "appDisabled": { "description": "True if this theme cannot be used in the application based on version compatibility, dependencies, and blocklisting.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "blocklisted": { "description": "Whether or not the theme appears in the blocklist.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "type": [ @@ -266,16 +320,23 @@ "description": "True or false depending on whether the theme is a third party theme installation or not.", "type": [ "boolean", - "integer" + "integer", + "null" ] }, "hasBinaryComponents": { "description": "True or false depending on whether the theme has binary components. This is always false since Firefox 60.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "id": { "description": "The id of the theme.", - "type": "string" + "type": [ + "string", + "null" + ] }, "installDay": { "description": "The days since epoch that the theme was first installed.", @@ -287,11 +348,17 @@ }, "name": { "description": "The theme name, limited to 100 characters.", - "type": "string" + "type": [ + "string", + "null" + ] }, "scope": { "description": "Indicates what scope the theme is installed in, per profile, user, system, or application.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "updateDay": { "description": "The day the theme was last updated.", @@ -303,17 +370,29 @@ }, "userDisabled": { "description": "Whether or not the user disabled the theme.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "version": { "description": "The version of the theme.", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "build": { "properties": { @@ -331,7 +410,10 @@ }, "architecturesInBinary": { "description": "For Mac universal builds, this is a string containing a list of architectures delimited by '-'. Architecture sets are always in the same order: ppc > i386 > ppc64 > x86_64 > (future additions). This is only available on Mac.", - "type": "string" + "type": [ + "string", + "null" + ] }, "buildId": { "description": "The build ID/date of the application.", @@ -341,7 +423,10 @@ "displayVersion": { "description": "The display version of the application.", "pattern": "^[0-9]{2,3}\\.", - "type": "string" + "type": [ + "string", + "null" + ] }, "hotfixVersion": { "type": [ @@ -356,7 +441,10 @@ }, "updaterAvailable": { "description": "True if the application was built with the support for the updater component.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "vendor": { "description": "The application vendor.", @@ -402,7 +490,10 @@ }, "type": "object" }, - "type": "object" + "type": [ + "object", + "null" + ] }, "partner": { "properties": { @@ -446,7 +537,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "type": "object" @@ -455,85 +549,148 @@ "properties": { "creationDate": { "description": "The creation date of the user profile as the integer number of days since UNIX epoch.", - "type": "number" + "type": [ + "number", + "null" + ] }, "firstUseDate": { - "type": "number" + "type": [ + "number", + "null" + ] }, "isStubProfile": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "resetDate": { "description": "The date the user profile was reset, as the integer number of days since UNIX epoch. This is optional.", - "type": "number" + "type": [ + "number", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "services": { "properties": { "accountEnabled": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "syncEnabled": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "settings": { "properties": { "addonCompatibilityCheckEnabled": { "description": "Whether application compatibility is respected for add-ons.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "attribution": { "properties": { "campaign": { "description": "Identifier of the particular campaign that led to the download of the product.", - "type": "string" + "type": [ + "string", + "null" + ] }, "content": { "description": "Identifier to indicate the particular link within a campaign.", - "type": "string" + "type": [ + "string", + "null" + ] }, "dlsource": { "description": "Identifier that indicates where installations of Firefox originate, see bug 1827233", - "type": "string" + "type": [ + "string", + "null" + ] }, "dltoken": { "description": "Unique token created at Firefox download time, see bug 1677497", - "type": "string" + "type": [ + "string", + "null" + ] }, "experiment": { "description": "funnel experiment parameters, see bug 1567339", - "type": "string" + "type": [ + "string", + "null" + ] }, "medium": { "description": "Category of the source, such as 'organic' for a search engine.", - "type": "string" + "type": [ + "string", + "null" + ] }, "source": { "description": "Referring partner domain, when install happens via a known partner.", - "type": "string" + "type": [ + "string", + "null" + ] }, "ua": { "description": "derived user agent, see bug 1595063", - "type": "string" + "type": [ + "string", + "null" + ] }, "variation": { "description": "funnel experiment parameters, see bug 1567339", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "blocklistEnabled": { "description": "True if the blocklist is enabled.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "defaultPrivateSearchEngine": { - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultPrivateSearchEngineData": { "properties": { @@ -544,20 +701,35 @@ ] }, "name": { - "type": "string" + "type": [ + "string", + "null" + ] }, "origin": { - "type": "string" + "type": [ + "string", + "null" + ] }, "submissionURL": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "defaultSearchEngine": { "description": "Contains the string identifier or name of the default search engine provider. Deprecated.", - "type": "string" + "type": [ + "string", + "null" + ] }, "defaultSearchEngineData": { "properties": { @@ -570,33 +742,57 @@ }, "name": { "description": "The name of the default search engine.", - "type": "string" + "type": [ + "string", + "null" + ] }, "origin": { "description": "The origin of the search engine: the value will be default for engines that are built-in or from distribution partners, verified for user-installed engines with valid verification hashes, unverified for non-default engines without verification hash, and invalid for engines with broken verification hashes.", - "type": "string" + "type": [ + "string", + "null" + ] }, "submissionURL": { "description": "The HTTP url we would use to search. For privacy, we don’t record this for user-installed engines.", - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "e10sCohort": { - "type": "string" + "type": [ + "string", + "null" + ] }, "e10sEnabled": { "description": "True if the E10S is enabled.", - "type": "boolean" - }, - "e10sMultiProcesses": { + "type": [ + "boolean", + "null" + ] + }, + "e10sMultiProcesses": { "description": "maximum number of processes that will be launched for regular web content", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "fissionEnabled": { "description": "whether fission is enabled this session, and subframes can load in a different process", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "intl": { "properties": { @@ -604,19 +800,28 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "appLocales": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "availableLocales": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "regionalPrefsLocales": { "items": { @@ -631,7 +836,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "systemLocales": { "items": { @@ -643,7 +851,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isDefaultBrowser": { "description": "Identifier to indicate the particular link within a campaign.", @@ -659,11 +870,17 @@ ] }, "launcherProcessState": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "locale": { "description": "The best locale that the application should be localized to.", - "type": "string" + "type": [ + "string", + "null" + ] }, "sandbox": { "properties": { @@ -682,7 +899,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "searchCohort": { "type": [ @@ -692,28 +912,46 @@ }, "telemetryEnabled": { "description": "The state of the `toolkit.telemetry.enabled` pref.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "update": { "properties": { "autoDownload": { "description": "The state of the `app.update.auto` pref.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "background": { "description": "Indicates whether updates may be installed when Firefox is not running.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "channel": { "description": "The update channel from the defaults only. Does not include the partner bits.", - "type": "string" + "type": [ + "string", + "null" + ] }, "enabled": { "description": "The state of the `app.update.enabled` pref.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "userPrefs": { "additionalProperties": { @@ -724,7 +962,10 @@ "null" ] }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "type": "object" @@ -753,14 +994,20 @@ "description": "The number of logical CPUs. Desktop only, e.g. 8, or `null` on failure.", "maximum": 1024, "minimum": 1, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "extensions": { "description": "This lists the avaible CPU extensions as strings. E.g.: 'hasMMX', 'hasSSE', 'hasSSE2', 'hasSSE3', 'hasSSSE3', 'hasSSE4A', 'hasSSE4_1', 'hasSSE4_2', 'hasAVX', 'hasAVX2', 'hasAES', 'hasEDSP', 'hasARMv6', 'hasARMv7', 'hasNEON'.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "family": { "description": "The CPU family, `null` on failure. Desktop only.", @@ -771,7 +1018,10 @@ }, "isWindowsSMode": { "description": "Whether or not the system is Windows 10 or 11 in S Mode. S Mode existed prior to us being able to query it, so this is unreliable on Windows versions prior to 1810.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "l2cacheKB": { "description": "The CPU L2 cache size in KB. `null` on failure. Desktop only.", @@ -823,30 +1073,51 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "device": { "properties": { "hardware": { - "type": "string" + "type": [ + "string", + "null" + ] }, "isTablet": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "manufacturer": { - "type": "string" + "type": [ + "string", + "null" + ] }, "model": { - "type": "string" + "type": [ + "string", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "gfx": { "properties": { "ContentBackend": { "description": "The name of the content backend.", - "type": "string" + "type": [ + "string", + "null" + ] }, "D2DEnabled": { "description": "Whether or not Direct2D is enabled. This is Windows only.", @@ -876,11 +1147,17 @@ ] }, "LowEndMachine": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "TargetFrameRate": { "description": "Frame rate in Hz, typically 60 or more, see bug 1840381", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "adapters": { "items": { @@ -948,7 +1225,10 @@ }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "features": { "properties": { @@ -967,7 +1247,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "compositor": { "description": "The name of the compositor. This is one of 'd3d9', 'd3d11', 'opengl', 'basic', or 'none' ('none' indicates no compositors have been created).", @@ -991,7 +1274,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "d3d11": { "properties": { @@ -1034,7 +1320,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "gpuProcess": { "properties": { @@ -1045,7 +1334,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "hwCompositing": { "properties": { @@ -1056,7 +1348,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "omtp": { "description": "Indicates whether the off-main-thread painting is enabled.", @@ -1068,7 +1363,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "openglCompositing": { "properties": { @@ -1079,7 +1377,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "webrender": { "properties": { @@ -1090,7 +1391,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "wrCompositor": { "properties": { @@ -1101,7 +1405,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "wrQualified": { "properties": { @@ -1112,7 +1419,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "wrSoftware": { "description": "Indicates whether the software backend to WebRender is enabled.", @@ -1124,36 +1434,63 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "monitors": { "items": { "properties": { "pseudoDisplay": { - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "refreshRate": { - "type": "number" + "type": [ + "number", + "null" + ] }, "scale": { - "type": "number" + "type": [ + "number", + "null" + ] }, "screenHeight": { - "type": "integer" + "type": [ + "integer", + "null" + ] }, "screenWidth": { - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "type": "object" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "hasWinPackageId": { "description": "Is the process running with a package identity (e.g. from an MSIX install)? See bug 1709892. This is Windows only.", @@ -1192,7 +1529,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "profile": { "properties": { @@ -1222,7 +1562,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "system": { "properties": { @@ -1252,14 +1595,23 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "isWow64": { "description": "The availability of the WoW64 subsystem. This is Windows only.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "isWowARM64": { "type": [ @@ -1269,7 +1621,10 @@ }, "memoryMB": { "description": "The machines amount of RAM.", - "type": "number" + "type": [ + "number", + "null" + ] }, "os": { "properties": { @@ -1310,33 +1665,52 @@ }, "kernelVersion": { "description": "The kernel version of Android. This is Android only. `null` on failure.", - "type": "string" + "type": [ + "string", + "null" + ] }, "locale": { "description": "The locale of the OS, e.g. 'en'. This is `null` on failure.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The name of the OS, e.g. 'Windows_NT'. This is `null` on failure.", - "type": "string" + "type": [ + "string", + "null" + ] }, "servicePackMajor": { "description": "The Windows service pack major version. This is Windows only. `null` on failure.", - "type": "number" + "type": [ + "number", + "null" + ] }, "servicePackMinor": { "description": "The Windows service pack minor version. This is Windows only. `null` on failure.", - "type": "number" + "type": [ + "number", + "null" + ] }, "version": { "description": "The version of the OS, e.g. '6.1'. This is `null` on failure.", "type": [ - "string" + "string", + "null" ] }, "windowsBuildNumber": { "description": "The Windows build number. This is Windows only. `null` on failure.", - "type": "number" + "type": [ + "number", + "null" + ] }, "windowsUBR": { "description": "The Windows UBR. This is Windows 10 only. `null` on failure.", @@ -1346,7 +1720,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "sec": { "properties": { @@ -1381,7 +1758,10 @@ ] } }, - "type": "object" + "type": [ + "object", + "null" + ] }, "virtualMaxMB": { "description": "Total virtual memory size in MB. This is Windows only. `null` on failure.", @@ -1407,7 +1787,10 @@ "settings", "system" ], - "type": "object" + "type": [ + "object", + "null" + ] }, "id": { "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", @@ -1421,224 +1804,389 @@ }, "crashId": { "description": "Optional, ID of the associated crash. Added to schema in bug 1604666.", - "type": "string" + "type": [ + "string", + "null" + ] }, "crashTime": { "description": ", time of crash. Per-hour resolution", - "type": "string" + "type": [ + "string", + "null" + ] }, "hasCrashEnvironment": { - "type": "boolean" - }, - "metadata": { + "type": [ + "boolean", + "null" + ] + }, + "metadata": { "properties": { "AsyncShutdownTimeout": { "description": ", Optional, present when a shutdown blocker failed to respond within a reasonable amount of time", - "type": "string" + "type": [ + "string", + "null" + ] }, "AvailablePageFile": { "description": ", Windows-only, available paging file in bytes", - "type": "string" + "type": [ + "string", + "null" + ] }, "AvailablePhysicalMemory": { "description": ", Windows-only, available physical memory in bytes", - "type": "string" + "type": [ + "string", + "null" + ] }, "AvailableSwapMemory": { "description": ", Amount of free swap space in bytes. - Under macOS, populated with the contents of\n sysctl \"vm.swapusage\" :: xsu_avail.\n- Under Linux, populated with /proc/meminfo's SwapFree. - Not available on other platforms.", - "type": "string" + "type": [ + "string", + "null" + ] }, "AvailableVirtualMemory": { "description": ", Windows-only, available virtual memory in bytes", - "type": "string" + "type": [ + "string", + "null" + ] }, "BackgroundTaskName": { "description": ", If the app was invoked in background task mode via `--backgroundtask `, the string \"task name\".", - "type": "string" + "type": [ + "string", + "null" + ] }, "BlockedDllList": { "description": ", Windows-only, see WindowsDllBlocklist.cpp for details", - "type": "string" + "type": [ + "string", + "null" + ] }, "BlocklistInitFailed": { "description": "1, Windows-only, present only if the DLL blocklist initialization failed", - "type": "string" + "type": [ + "string", + "null" + ] }, "BuildID": { "description": "YYYYMMDDHHMMSS", - "type": "string" + "type": [ + "string", + "null" + ] }, "ContainsMemoryReport": { "description": "1, Optional, if set indicates that the crash had a memory report attached", - "type": "string" + "type": [ + "string", + "null" + ] }, "CrashTime": { "description": "