# This file is generated by fetch_event_schema_json.py
# it is based on api/event.schema.json
# the following license applies:
# Copyright (c) 2020 Sentry (https://sentry.io) and individual contributors.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

VERSION = "2.20.0"
from decimal import Decimal
from fastjsonschema import JsonSchemaValueException


NoneType = type(None)


def validate(data, custom_formats={}, name_prefix=None):
    data_any_of_count1 = 0
    if not data_any_of_count1:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "breadcrumbs": {
                                "description": " List of breadcrumbs recorded before this event.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "category": {
                                                                    "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "data": {
                                                                    "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "object",
                                                                        "null",
                                                                    ],
                                                                    "additionalProperties": True,
                                                                },
                                                                "event_id": {
                                                                    "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/EventId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "level": {
                                                                    "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Level"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "message": {
                                                                    "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "timestamp": {
                                                                    "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Timestamp"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            "contexts": {
                                "description": " Contexts describing the environment (e.g. device, os or browser).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The Contexts interface provides additional context data. Typically, this is data related to the\n current user and the environment. For example, the device or application version. Its canonical\n name is `contexts`.\n\n The `contexts` type can be used to define arbitrary contextual data on the event. It accepts an\n object of key/value pairs. The key is the “alias” of the context and can be freely chosen.\n However, as per policy, it should match the type of the context unless there are two values for\n a type. You can omit `type` if the key name is the type.\n\n Unknown data for the contexts is rendered as a key/value list.\n\n For more details about sending additional data with your event, see the [full documentation on\n Additional Data](https://docs.sentry.io/enriching-error-data/additional-data/).",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": {
                                                    "anyOf": [
                                                        {
                                                            "$ref": "#/definitions/ContextInner"
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "culprit": {
                                "description": " Custom culprit of the event.\n\n This field is deprecated and shall not be set by client SDKs.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "debug_meta": {
                                "description": " Meta data for event processing and debugging.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Debugging and processing meta information.\n\n The debug meta interface carries debug information for processing errors and crash reports.\n Sentry amends the information in this interface.\n\n Example (look at field types to see more detail):\n\n ```json\n {\n   "debug_meta": {\n     "images": [],\n     "sdk_info": {\n       "sdk_name": "iOS",\n       "version_major": 10,\n       "version_minor": 3,\n       "version_patchlevel": 0\n     }\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "images": {
                                                        "description": " List of debug information files (debug images).",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/DebugImage"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "sdk_info": {
                                                        "description": " Information about the system SDK (e.g. iOS SDK).",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/SystemSdkInfo"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "dist": {
                                "description": " Program's distribution identifier.\n\n The distribution of the application.\n\n Distributions are used to disambiguate build or deployment variants of the same release of\n an application. For example, the dist can be the build number of an XCode build or the\n version code of an Android build.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "environment": {
                                "description": ' The environment name, such as `production` or `staging`.\n\n ```json\n { "environment": "production" }\n ```',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "errors": {
                                "description": " Errors encountered during processing. Intended to be phased out in favor of\n annotation/metadata system.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " An event processing error.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["type"],
                                                    "properties": {
                                                        "name": {
                                                            "description": " Affected key or deep path.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "type": {
                                                            "description": " The error kind.",
                                                            "type": ["string", "null"],
                                                        },
                                                        "value": {
                                                            "description": " The original value causing this error.",
                                                            "default": None,
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "event_id": {
                                "description": ' Unique identifier of this event.\n\n Hexadecimal string representing a uuid4 value. The length is exactly 32 characters. Dashes\n are not allowed. Has to be lowercase.\n\n Even though this field is backfilled on the server with a new uuid4, it is strongly\n recommended to generate that uuid4 clientside. There are some features like user feedback\n which are easier to implement that way, and debugging in case events get lost in your\n Sentry installation is also easier.\n\n Example:\n\n ```json\n {\n   "event_id": "fc6d8c0c43fc4630ad850ee518f1b9d0"\n }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "exception": {
                                "description": " One or multiple chained (nested) exceptions.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "mechanism": {
                                                                    "description": " Mechanism by which this exception was generated and handled.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Mechanism"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "module": {
                                                                    "description": " The optional module, or package which the exception type lives in.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stacktrace": {
                                                                    "description": " Stack trace containing frames of this exception.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Stacktrace"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "thread_id": {
                                                                    "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "value": {
                                                                    "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/JsonLenientString"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            "extra": {
                                "description": ' Arbitrary extra information set by the user.\n\n ```json\n {\n     "extra": {\n         "my_key": 1,\n         "some_other_value": "foo bar"\n     }\n }```',
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "fingerprint": {
                                "description": ' Manual fingerprint override.\n\n A list of strings used to dictate how this event is supposed to be grouped with other\n events into issues. For more information about overriding grouping see [Customize Grouping\n with Fingerprints](https://docs.sentry.io/data-management/event-grouping/).\n\n ```json\n {\n     "fingerprint": ["myrpc", "POST", "/foo.bar"]\n }',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A fingerprint value.",
                                        "anyOf": [
                                            {
                                                "type": "array",
                                                "items": {"type": "string"},
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "level": {
                                "description": ' Severity level of the event. Defaults to `error`.\n\n Example:\n\n ```json\n {"level": "warning"}\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Severity level of an event or breadcrumb.",
                                        "type": "string",
                                        "enum": [
                                            "debug",
                                            "info",
                                            "warning",
                                            "error",
                                            "fatal",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "logentry": {
                                "description": " Custom parameterized message for this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' A log entry message.\n\n A log message is similar to the `message` attribute on the event itself but\n can additionally hold optional parameters.\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like %s",\n     "params": ["this"]\n   }\n }\n ```\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like {foo}",\n     "params": {"foo": "this"}\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "formatted": {
                                                        "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Message"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "message": {
                                                        "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Message"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "params": {
                                                        "description": " Parameters to be interpolated into the log message. This can be an array of positional\n parameters as well as a mapping of named arguments to their values.",
                                                        "default": None,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "logger": {
                                "description": " Logger that created the event.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "modules": {
                                "description": ' Name and versions of all installed modules/packages/dependencies in the current\n environment/application.\n\n ```json\n { "django": "3.0.0", "celery": "4.2.1" }\n ```\n\n In Python this is a list of installed packages as reported by `pkg_resources` together with\n their reported version string.\n\n This is primarily used for suggesting to enable certain SDK integrations from within the UI\n and for making informed decisions on which frameworks to support in future development\n efforts.',
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            "platform": {
                                "description": ' Platform identifier of this event (defaults to "other").\n\n A string representing the platform the SDK is submitting from. This will be used by the\n Sentry interface to customize various components in the interface, but also to enter or\n skip stacktrace processing.\n\n Acceptable values are: `as3`, `c`, `cfml`, `cocoa`, `csharp`, `elixir`, `haskell`, `go`,\n `groovy`, `java`, `javascript`, `native`, `node`, `objc`, `other`, `perl`, `php`, `python`,\n `ruby`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "received": {
                                "description": " Timestamp when the event has been received by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "release": {
                                "description": " The release version of the application.\n\n **Release versions must be unique across all projects in your organization.** This value\n can be the git SHA for the given project, or a product identifier with a semantic version.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "request": {
                                "description": " Information about a web request that occurred during the event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Http request information.\n\n The Request interface contains information on a HTTP request related to the event. In client\n SDKs, this can be an outgoing request, or the request that rendered the current web page. On\n server SDKs, this could be the incoming web request that is being handled.\n\n The data variable should only contain the request body (not the query string). It can either be\n a dictionary (for standard HTTP requests) or a raw request body.\n\n ### Ordered Maps\n\n In the Request interface, several attributes can either be declared as string, object, or list\n of tuples. Sentry attempts to parse structured information from the string representation in\n such cases.\n\n Sometimes, keys can be declared multiple times, or the order of elements matters. In such\n cases, use the tuple representation over a plain object.\n\n Example of request headers as object:\n\n ```json\n {\n   "content-type": "application/json",\n   "accept": "application/json, application/xml"\n }\n ```\n\n Example of the same headers as list of tuples:\n\n ```json\n [\n   ["content-type", "application/json"],\n   ["accept", "application/json"],\n   ["accept", "application/xml"]\n ]\n ```\n\n Example of a fully populated request object:\n\n ```json\n {\n   "request": {\n     "method": "POST",\n     "url": "http://absolute.uri/foo",\n     "query_string": "query=foobar&page=2",\n     "data": {\n       "foo": "bar"\n     },\n     "cookies": "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;",\n     "headers": {\n       "content-type": "text/html"\n     },\n     "env": {\n       "REMOTE_ADDR": "192.168.0.1"\n     }\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "api_target": {
                                                        "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "body_size": {
                                                        "description": " HTTP request body size.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "cookies": {
                                                        "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Cookies"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "data": {
                                                        "description": " Request data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                                        "default": None,
                                                    },
                                                    "env": {
                                                        "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "fragment": {
                                                        "description": " The fragment of the request URI.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "headers": {
                                                        "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Headers"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "inferred_content_type": {
                                                        "description": " The inferred content type of the request payload.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "method": {
                                                        "description": " HTTP request method.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "protocol": {
                                                        "description": " HTTP protocol.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "query_string": {
                                                        "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "anyOf": [
                                                                    {"type": "string"},
                                                                    {
                                                                        "anyOf": [
                                                                            {
                                                                                "type": "object",
                                                                                "additionalProperties": {
                                                                                    "type": [
                                                                                        "string",
                                                                                        "null",
                                                                                    ]
                                                                                },
                                                                            },
                                                                            {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": [
                                                                                        "array",
                                                                                        "null",
                                                                                    ],
                                                                                    "items": [
                                                                                        {
                                                                                            "type": [
                                                                                                "string",
                                                                                                "null",
                                                                                            ]
                                                                                        },
                                                                                        {
                                                                                            "type": [
                                                                                                "string",
                                                                                                "null",
                                                                                            ]
                                                                                        },
                                                                                    ],
                                                                                    "maxItems": 2,
                                                                                    "minItems": 2,
                                                                                },
                                                                            },
                                                                        ]
                                                                    },
                                                                ]
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "url": {
                                                        "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "sdk": {
                                "description": " Information about the Sentry SDK that generated this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The SDK Interface describes the Sentry SDK and its configuration used to capture and transmit an event.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["name", "version"],
                                                "properties": {
                                                    "features": {
                                                        "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    "integrations": {
                                                        "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    "name": {
                                                        "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                                        "type": ["string", "null"],
                                                    },
                                                    "packages": {
                                                        "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ClientSdkPackage"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "version": {
                                                        "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "server_name": {
                                "description": " Server or device name the event was generated on.\n\n This is supposed to be a hostname.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "stacktrace": {
                                "description": " Event stacktrace.\n\n DEPRECATED: Prefer `threads` or `exception` depending on which is more appropriate.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "tags": {
                                "description": " Custom tags for this event.\n\n A map or list of tags for this event. Each tag must be less than 200 characters.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Manual key/value tag pairs.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TagEntry"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "threads": {
                                "description": " Threads that were active when the event occurred.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "crashed": {
                                                                    "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "current": {
                                                                    "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "held_locks": {
                                                                    "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "object",
                                                                        "null",
                                                                    ],
                                                                    "additionalProperties": {
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/LockReason"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ]
                                                                    },
                                                                },
                                                                "id": {
                                                                    "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "main": {
                                                                    "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "name": {
                                                                    "description": " Display name of this thread.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stacktrace": {
                                                                    "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Stacktrace"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "state": {
                                                                    "description": " Thread state at the time of the crash.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            "time_spent": {
                                "description": " Time since the start of the transaction until the error occurred.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "timestamp": {
                                "description": ' Timestamp when the event was created.\n\n Indicates when the event was created in the Sentry SDK. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Timezone is assumed to be UTC if missing.\n\n Sub-microsecond precision is not preserved with numeric values due to precision\n limitations with floats (at least in our systems). With that caveat in mind, just send\n whatever is easiest to produce.\n\n All timestamps in the event protocol are formatted this way.\n\n # Example\n\n All of these are the same date:\n\n ```json\n { "timestamp": "2011-05-02T17:41:36Z" }\n { "timestamp": "2011-05-02T17:41:36" }\n { "timestamp": "2011-05-02T17:41:36.000" }\n { "timestamp": 1304358096.0 }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "transaction": {
                                "description": ' Transaction name of the event.\n\n For example, in a web app, this might be the route name (`"/users/<username>/"` or\n `UserView`), in a task queue it might be the function + module name.',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "transaction_info": {
                                "description": " Additional information about the name of the transaction.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Additional information about the name of the transaction.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "changes": {
                                                        "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TransactionNameChange"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "original": {
                                                        "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "propagations": {
                                                        "description": " The total number of propagations during the transaction.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "source": {
                                                        "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/TransactionSource"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "type": {
                                "description": ' Type of the event. Defaults to `default`.\n\n The event type determines how Sentry handles the event and has an impact on processing, rate\n limiting, and quotas. There are three fundamental classes of event types:\n\n  - **Error monitoring events**: Processed and grouped into unique issues based on their\n    exception stack traces and error messages.\n  - **Security events**: Derived from Browser security violation reports and grouped into\n    unique issues based on the endpoint and violation. SDKs do not send such events.\n  - **Transaction events** (`transaction`): Contain operation spans and collected into traces\n    for performance monitoring.\n\n Transactions must explicitly specify the `"transaction"` event type. In all other cases,\n Sentry infers the appropriate event type from the payload and overrides the stated type.\n SDKs should not send an event type other than for transactions.\n\n Example:\n\n ```json\n {\n   "type": "transaction",\n   "spans": []\n }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "The type of an event.\n\nThe event type determines how Sentry handles the event and has an impact on processing, rate limiting, and quotas. There are three fundamental classes of event types:\n\n- **Error monitoring events** (`default`, `error`): Processed and grouped into unique issues based on their exception stack traces and error messages. - **Security events** (`csp`, `hpkp`, `expectct`, `expectstaple`): Derived from Browser security violation reports and grouped into unique issues based on the endpoint and violation. SDKs do not send such events. - **Transaction events** (`transaction`): Contain operation spans and collected into traces for performance monitoring.",
                                        "type": "string",
                                        "enum": [
                                            "error",
                                            "csp",
                                            "hpkp",
                                            "expectct",
                                            "expectstaple",
                                            "nel",
                                            "transaction",
                                            "userreportv2",
                                            "default",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "user": {
                                "description": " Information about the user who triggered this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Information about the user who triggered an event.\n\n ```json\n {\n   "user": {\n     "id": "unique_id",\n     "username": "my_user",\n     "email": "foo@example.com",\n     "ip_address": "127.0.0.1",\n     "subscription": "basic"\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "data": {
                                                        "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "email": {
                                                        "description": " Email address of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "geo": {
                                                        "description": " Approximate geographical location of the end user or device.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Geo"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "id": {
                                                        "description": " Unique identifier of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "ip_address": {
                                                        "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/String"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "name": {
                                                        "description": " Human readable name of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "segment": {
                                                        "description": " The user segment, for apps that divide users in user segments.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry_user": {
                                                        "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "username": {
                                                        "description": " Username of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "version": {
                                "description": " Version",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "breadcrumbs" in data_keys:
                    data_keys.remove("breadcrumbs")
                    data__breadcrumbs = data["breadcrumbs"]
                    if not isinstance(data__breadcrumbs, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".breadcrumbs must be object or null",
                            value=data__breadcrumbs,
                            name="" + (name_prefix or "data") + ".breadcrumbs",
                            definition={
                                "description": " List of breadcrumbs recorded before this event.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "category": {
                                                                    "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "data": {
                                                                    "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "object",
                                                                        "null",
                                                                    ],
                                                                    "additionalProperties": True,
                                                                },
                                                                "event_id": {
                                                                    "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/EventId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "level": {
                                                                    "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Level"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "message": {
                                                                    "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "timestamp": {
                                                                    "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Timestamp"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            rule="type",
                        )
                    data__breadcrumbs_is_dict = isinstance(data__breadcrumbs, dict)
                    if data__breadcrumbs_is_dict:
                        data__breadcrumbs__missing_keys = (
                            set(["values"]) - data__breadcrumbs.keys()
                        )
                        if data__breadcrumbs__missing_keys:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".breadcrumbs must contain "
                                + (
                                    str(sorted(data__breadcrumbs__missing_keys))
                                    + " properties"
                                ),
                                value=data__breadcrumbs,
                                name="" + (name_prefix or "data") + ".breadcrumbs",
                                definition={
                                    "description": " List of breadcrumbs recorded before this event.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "required": ["values"],
                                    "properties": {
                                        "values": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "category": {
                                                                        "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "data": {
                                                                        "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "object",
                                                                            "null",
                                                                        ],
                                                                        "additionalProperties": True,
                                                                    },
                                                                    "event_id": {
                                                                        "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/EventId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "level": {
                                                                        "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Level"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "message": {
                                                                        "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "timestamp": {
                                                                        "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Timestamp"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "type": {
                                                                        "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                        }
                                    },
                                },
                                rule="required",
                            )
                        data__breadcrumbs_keys = set(data__breadcrumbs.keys())
                        if "values" in data__breadcrumbs_keys:
                            data__breadcrumbs_keys.remove("values")
                            data__breadcrumbs__values = data__breadcrumbs["values"]
                            if not isinstance(data__breadcrumbs__values, (list, tuple)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".breadcrumbs.values must be array",
                                    value=data__breadcrumbs__values,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".breadcrumbs.values",
                                    definition={
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "category": {
                                                                    "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "data": {
                                                                    "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "object",
                                                                        "null",
                                                                    ],
                                                                    "additionalProperties": True,
                                                                },
                                                                "event_id": {
                                                                    "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/EventId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "level": {
                                                                    "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Level"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "message": {
                                                                    "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "timestamp": {
                                                                    "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Timestamp"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    rule="type",
                                )
                            data__breadcrumbs__values_is_list = isinstance(
                                data__breadcrumbs__values, (list, tuple)
                            )
                            if data__breadcrumbs__values_is_list:
                                data__breadcrumbs__values_len = len(
                                    data__breadcrumbs__values
                                )
                                for (
                                    data__breadcrumbs__values_x,
                                    data__breadcrumbs__values_item,
                                ) in enumerate(data__breadcrumbs__values):
                                    data__breadcrumbs__values_item_any_of_count2 = 0
                                    if not data__breadcrumbs__values_item_any_of_count2:
                                        try:
                                            validate___definitions_breadcrumb(
                                                data__breadcrumbs__values_item,
                                                custom_formats,
                                                (name_prefix or "data")
                                                + ".breadcrumbs.values[{data__breadcrumbs__values_x}]".format(
                                                    **locals()
                                                ),
                                            )
                                            data__breadcrumbs__values_item_any_of_count2 += (
                                                1
                                            )
                                        except JsonSchemaValueException:
                                            pass
                                    if not data__breadcrumbs__values_item_any_of_count2:
                                        try:
                                            if not isinstance(
                                                data__breadcrumbs__values_item,
                                                (NoneType),
                                            ):
                                                raise JsonSchemaValueException(
                                                    ""
                                                    + (name_prefix or "data")
                                                    + ".breadcrumbs.values[{data__breadcrumbs__values_x}]".format(
                                                        **locals()
                                                    )
                                                    + " must be null",
                                                    value=data__breadcrumbs__values_item,
                                                    name=""
                                                    + (name_prefix or "data")
                                                    + ".breadcrumbs.values[{data__breadcrumbs__values_x}]".format(
                                                        **locals()
                                                    )
                                                    + "",
                                                    definition={"type": "null"},
                                                    rule="type",
                                                )
                                            data__breadcrumbs__values_item_any_of_count2 += (
                                                1
                                            )
                                        except JsonSchemaValueException:
                                            pass
                                    if not data__breadcrumbs__values_item_any_of_count2:
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".breadcrumbs.values[{data__breadcrumbs__values_x}]".format(
                                                **locals()
                                            )
                                            + " cannot be validated by any definition",
                                            value=data__breadcrumbs__values_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".breadcrumbs.values[{data__breadcrumbs__values_x}]".format(
                                                **locals()
                                            )
                                            + "",
                                            definition={
                                                "anyOf": [
                                                    {
                                                        "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "category": {
                                                                        "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "data": {
                                                                        "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "object",
                                                                            "null",
                                                                        ],
                                                                        "additionalProperties": True,
                                                                    },
                                                                    "event_id": {
                                                                        "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/EventId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "level": {
                                                                        "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Level"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "message": {
                                                                        "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "timestamp": {
                                                                        "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Timestamp"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "type": {
                                                                        "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                            rule="anyOf",
                                        )
                if "contexts" in data_keys:
                    data_keys.remove("contexts")
                    data__contexts = data["contexts"]
                    data__contexts_any_of_count3 = 0
                    if not data__contexts_any_of_count3:
                        try:
                            validate___definitions_contexts(
                                data__contexts,
                                custom_formats,
                                (name_prefix or "data") + ".contexts",
                            )
                            data__contexts_any_of_count3 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__contexts_any_of_count3:
                        try:
                            if not isinstance(data__contexts, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".contexts must be null",
                                    value=data__contexts,
                                    name="" + (name_prefix or "data") + ".contexts",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__contexts_any_of_count3 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__contexts_any_of_count3:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".contexts cannot be validated by any definition",
                            value=data__contexts,
                            name="" + (name_prefix or "data") + ".contexts",
                            definition={
                                "description": " Contexts describing the environment (e.g. device, os or browser).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The Contexts interface provides additional context data. Typically, this is data related to the\n current user and the environment. For example, the device or application version. Its canonical\n name is `contexts`.\n\n The `contexts` type can be used to define arbitrary contextual data on the event. It accepts an\n object of key/value pairs. The key is the “alias” of the context and can be freely chosen.\n However, as per policy, it should match the type of the context unless there are two values for\n a type. You can omit `type` if the key name is the type.\n\n Unknown data for the contexts is rendered as a key/value list.\n\n For more details about sending additional data with your event, see the [full documentation on\n Additional Data](https://docs.sentry.io/enriching-error-data/additional-data/).",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": {
                                                    "anyOf": [
                                                        {
                                                            "$ref": "#/definitions/ContextInner"
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "culprit" in data_keys:
                    data_keys.remove("culprit")
                    data__culprit = data["culprit"]
                    if not isinstance(data__culprit, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".culprit must be string or null",
                            value=data__culprit,
                            name="" + (name_prefix or "data") + ".culprit",
                            definition={
                                "description": " Custom culprit of the event.\n\n This field is deprecated and shall not be set by client SDKs.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "debug_meta" in data_keys:
                    data_keys.remove("debug_meta")
                    data__debugmeta = data["debug_meta"]
                    data__debugmeta_any_of_count4 = 0
                    if not data__debugmeta_any_of_count4:
                        try:
                            validate___definitions_debugmeta(
                                data__debugmeta,
                                custom_formats,
                                (name_prefix or "data") + ".debug_meta",
                            )
                            data__debugmeta_any_of_count4 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugmeta_any_of_count4:
                        try:
                            if not isinstance(data__debugmeta, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".debug_meta must be null",
                                    value=data__debugmeta,
                                    name="" + (name_prefix or "data") + ".debug_meta",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__debugmeta_any_of_count4 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugmeta_any_of_count4:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".debug_meta cannot be validated by any definition",
                            value=data__debugmeta,
                            name="" + (name_prefix or "data") + ".debug_meta",
                            definition={
                                "description": " Meta data for event processing and debugging.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Debugging and processing meta information.\n\n The debug meta interface carries debug information for processing errors and crash reports.\n Sentry amends the information in this interface.\n\n Example (look at field types to see more detail):\n\n ```json\n {\n   "debug_meta": {\n     "images": [],\n     "sdk_info": {\n       "sdk_name": "iOS",\n       "version_major": 10,\n       "version_minor": 3,\n       "version_patchlevel": 0\n     }\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "images": {
                                                        "description": " List of debug information files (debug images).",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/DebugImage"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "sdk_info": {
                                                        "description": " Information about the system SDK (e.g. iOS SDK).",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/SystemSdkInfo"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "dist" in data_keys:
                    data_keys.remove("dist")
                    data__dist = data["dist"]
                    if not isinstance(data__dist, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".dist must be string or null",
                            value=data__dist,
                            name="" + (name_prefix or "data") + ".dist",
                            definition={
                                "description": " Program's distribution identifier.\n\n The distribution of the application.\n\n Distributions are used to disambiguate build or deployment variants of the same release of\n an application. For example, the dist can be the build number of an XCode build or the\n version code of an Android build.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "environment" in data_keys:
                    data_keys.remove("environment")
                    data__environment = data["environment"]
                    if not isinstance(data__environment, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".environment must be string or null",
                            value=data__environment,
                            name="" + (name_prefix or "data") + ".environment",
                            definition={
                                "description": ' The environment name, such as `production` or `staging`.\n\n ```json\n { "environment": "production" }\n ```',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "errors" in data_keys:
                    data_keys.remove("errors")
                    data__errors = data["errors"]
                    if not isinstance(data__errors, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".errors must be array or null",
                            value=data__errors,
                            name="" + (name_prefix or "data") + ".errors",
                            definition={
                                "description": " Errors encountered during processing. Intended to be phased out in favor of\n annotation/metadata system.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " An event processing error.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["type"],
                                                    "properties": {
                                                        "name": {
                                                            "description": " Affected key or deep path.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "type": {
                                                            "description": " The error kind.",
                                                            "type": ["string", "null"],
                                                        },
                                                        "value": {
                                                            "description": " The original value causing this error.",
                                                            "default": None,
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            rule="type",
                        )
                    data__errors_is_list = isinstance(data__errors, (list, tuple))
                    if data__errors_is_list:
                        data__errors_len = len(data__errors)
                        for data__errors_x, data__errors_item in enumerate(
                            data__errors
                        ):
                            data__errors_item_any_of_count5 = 0
                            if not data__errors_item_any_of_count5:
                                try:
                                    validate___definitions_eventprocessingerror(
                                        data__errors_item,
                                        custom_formats,
                                        (name_prefix or "data")
                                        + ".errors[{data__errors_x}]".format(
                                            **locals()
                                        ),
                                    )
                                    data__errors_item_any_of_count5 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__errors_item_any_of_count5:
                                try:
                                    if not isinstance(data__errors_item, (NoneType)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".errors[{data__errors_x}]".format(
                                                **locals()
                                            )
                                            + " must be null",
                                            value=data__errors_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".errors[{data__errors_x}]".format(
                                                **locals()
                                            )
                                            + "",
                                            definition={"type": "null"},
                                            rule="type",
                                        )
                                    data__errors_item_any_of_count5 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__errors_item_any_of_count5:
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".errors[{data__errors_x}]".format(**locals())
                                    + " cannot be validated by any definition",
                                    value=data__errors_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".errors[{data__errors_x}]".format(**locals())
                                    + "",
                                    definition={
                                        "anyOf": [
                                            {
                                                "description": " An event processing error.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "required": ["type"],
                                                        "properties": {
                                                            "name": {
                                                                "description": " Affected key or deep path.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "type": {
                                                                "description": " The error kind.",
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "value": {
                                                                "description": " The original value causing this error.",
                                                                "default": None,
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                    rule="anyOf",
                                )
                if "event_id" in data_keys:
                    data_keys.remove("event_id")
                    data__eventid = data["event_id"]
                    data__eventid_any_of_count6 = 0
                    if not data__eventid_any_of_count6:
                        try:
                            validate___definitions_eventid(
                                data__eventid,
                                custom_formats,
                                (name_prefix or "data") + ".event_id",
                            )
                            data__eventid_any_of_count6 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__eventid_any_of_count6:
                        try:
                            if not isinstance(data__eventid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".event_id must be null",
                                    value=data__eventid,
                                    name="" + (name_prefix or "data") + ".event_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__eventid_any_of_count6 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__eventid_any_of_count6:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".event_id cannot be validated by any definition",
                            value=data__eventid,
                            name="" + (name_prefix or "data") + ".event_id",
                            definition={
                                "description": ' Unique identifier of this event.\n\n Hexadecimal string representing a uuid4 value. The length is exactly 32 characters. Dashes\n are not allowed. Has to be lowercase.\n\n Even though this field is backfilled on the server with a new uuid4, it is strongly\n recommended to generate that uuid4 clientside. There are some features like user feedback\n which are easier to implement that way, and debugging in case events get lost in your\n Sentry installation is also easier.\n\n Example:\n\n ```json\n {\n   "event_id": "fc6d8c0c43fc4630ad850ee518f1b9d0"\n }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "exception" in data_keys:
                    data_keys.remove("exception")
                    data__exception = data["exception"]
                    if not isinstance(data__exception, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".exception must be object or null",
                            value=data__exception,
                            name="" + (name_prefix or "data") + ".exception",
                            definition={
                                "description": " One or multiple chained (nested) exceptions.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "mechanism": {
                                                                    "description": " Mechanism by which this exception was generated and handled.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Mechanism"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "module": {
                                                                    "description": " The optional module, or package which the exception type lives in.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stacktrace": {
                                                                    "description": " Stack trace containing frames of this exception.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Stacktrace"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "thread_id": {
                                                                    "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "value": {
                                                                    "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/JsonLenientString"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            rule="type",
                        )
                    data__exception_is_dict = isinstance(data__exception, dict)
                    if data__exception_is_dict:
                        data__exception__missing_keys = (
                            set(["values"]) - data__exception.keys()
                        )
                        if data__exception__missing_keys:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".exception must contain "
                                + (
                                    str(sorted(data__exception__missing_keys))
                                    + " properties"
                                ),
                                value=data__exception,
                                name="" + (name_prefix or "data") + ".exception",
                                definition={
                                    "description": " One or multiple chained (nested) exceptions.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "required": ["values"],
                                    "properties": {
                                        "values": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "mechanism": {
                                                                        "description": " Mechanism by which this exception was generated and handled.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Mechanism"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "module": {
                                                                        "description": " The optional module, or package which the exception type lives in.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "stacktrace": {
                                                                        "description": " Stack trace containing frames of this exception.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Stacktrace"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "thread_id": {
                                                                        "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/ThreadId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "type": {
                                                                        "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "value": {
                                                                        "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/JsonLenientString"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                        }
                                    },
                                },
                                rule="required",
                            )
                        data__exception_keys = set(data__exception.keys())
                        if "values" in data__exception_keys:
                            data__exception_keys.remove("values")
                            data__exception__values = data__exception["values"]
                            if not isinstance(data__exception__values, (list, tuple)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".exception.values must be array",
                                    value=data__exception__values,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".exception.values",
                                    definition={
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "mechanism": {
                                                                    "description": " Mechanism by which this exception was generated and handled.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Mechanism"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "module": {
                                                                    "description": " The optional module, or package which the exception type lives in.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stacktrace": {
                                                                    "description": " Stack trace containing frames of this exception.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Stacktrace"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "thread_id": {
                                                                    "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "value": {
                                                                    "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/JsonLenientString"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    rule="type",
                                )
                            data__exception__values_is_list = isinstance(
                                data__exception__values, (list, tuple)
                            )
                            if data__exception__values_is_list:
                                data__exception__values_len = len(
                                    data__exception__values
                                )
                                for (
                                    data__exception__values_x,
                                    data__exception__values_item,
                                ) in enumerate(data__exception__values):
                                    data__exception__values_item_any_of_count7 = 0
                                    if not data__exception__values_item_any_of_count7:
                                        try:
                                            validate___definitions_exception(
                                                data__exception__values_item,
                                                custom_formats,
                                                (name_prefix or "data")
                                                + ".exception.values[{data__exception__values_x}]".format(
                                                    **locals()
                                                ),
                                            )
                                            data__exception__values_item_any_of_count7 += (
                                                1
                                            )
                                        except JsonSchemaValueException:
                                            pass
                                    if not data__exception__values_item_any_of_count7:
                                        try:
                                            if not isinstance(
                                                data__exception__values_item, (NoneType)
                                            ):
                                                raise JsonSchemaValueException(
                                                    ""
                                                    + (name_prefix or "data")
                                                    + ".exception.values[{data__exception__values_x}]".format(
                                                        **locals()
                                                    )
                                                    + " must be null",
                                                    value=data__exception__values_item,
                                                    name=""
                                                    + (name_prefix or "data")
                                                    + ".exception.values[{data__exception__values_x}]".format(
                                                        **locals()
                                                    )
                                                    + "",
                                                    definition={"type": "null"},
                                                    rule="type",
                                                )
                                            data__exception__values_item_any_of_count7 += (
                                                1
                                            )
                                        except JsonSchemaValueException:
                                            pass
                                    if not data__exception__values_item_any_of_count7:
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".exception.values[{data__exception__values_x}]".format(
                                                **locals()
                                            )
                                            + " cannot be validated by any definition",
                                            value=data__exception__values_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".exception.values[{data__exception__values_x}]".format(
                                                **locals()
                                            )
                                            + "",
                                            definition={
                                                "anyOf": [
                                                    {
                                                        "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "mechanism": {
                                                                        "description": " Mechanism by which this exception was generated and handled.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Mechanism"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "module": {
                                                                        "description": " The optional module, or package which the exception type lives in.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "stacktrace": {
                                                                        "description": " Stack trace containing frames of this exception.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Stacktrace"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "thread_id": {
                                                                        "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/ThreadId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "type": {
                                                                        "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "value": {
                                                                        "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/JsonLenientString"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                            rule="anyOf",
                                        )
                if "extra" in data_keys:
                    data_keys.remove("extra")
                    data__extra = data["extra"]
                    if not isinstance(data__extra, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".extra must be object or null",
                            value=data__extra,
                            name="" + (name_prefix or "data") + ".extra",
                            definition={
                                "description": ' Arbitrary extra information set by the user.\n\n ```json\n {\n     "extra": {\n         "my_key": 1,\n         "some_other_value": "foo bar"\n     }\n }```',
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            rule="type",
                        )
                    data__extra_is_dict = isinstance(data__extra, dict)
                    if data__extra_is_dict:
                        data__extra_keys = set(data__extra.keys())
                if "fingerprint" in data_keys:
                    data_keys.remove("fingerprint")
                    data__fingerprint = data["fingerprint"]
                    data__fingerprint_any_of_count8 = 0
                    if not data__fingerprint_any_of_count8:
                        try:
                            validate___definitions_fingerprint(
                                data__fingerprint,
                                custom_formats,
                                (name_prefix or "data") + ".fingerprint",
                            )
                            data__fingerprint_any_of_count8 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__fingerprint_any_of_count8:
                        try:
                            if not isinstance(data__fingerprint, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".fingerprint must be null",
                                    value=data__fingerprint,
                                    name="" + (name_prefix or "data") + ".fingerprint",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__fingerprint_any_of_count8 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__fingerprint_any_of_count8:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".fingerprint cannot be validated by any definition",
                            value=data__fingerprint,
                            name="" + (name_prefix or "data") + ".fingerprint",
                            definition={
                                "description": ' Manual fingerprint override.\n\n A list of strings used to dictate how this event is supposed to be grouped with other\n events into issues. For more information about overriding grouping see [Customize Grouping\n with Fingerprints](https://docs.sentry.io/data-management/event-grouping/).\n\n ```json\n {\n     "fingerprint": ["myrpc", "POST", "/foo.bar"]\n }',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A fingerprint value.",
                                        "anyOf": [
                                            {
                                                "type": "array",
                                                "items": {"type": "string"},
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "level" in data_keys:
                    data_keys.remove("level")
                    data__level = data["level"]
                    data__level_any_of_count9 = 0
                    if not data__level_any_of_count9:
                        try:
                            validate___definitions_level(
                                data__level,
                                custom_formats,
                                (name_prefix or "data") + ".level",
                            )
                            data__level_any_of_count9 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__level_any_of_count9:
                        try:
                            if not isinstance(data__level, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".level must be null",
                                    value=data__level,
                                    name="" + (name_prefix or "data") + ".level",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__level_any_of_count9 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__level_any_of_count9:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".level cannot be validated by any definition",
                            value=data__level,
                            name="" + (name_prefix or "data") + ".level",
                            definition={
                                "description": ' Severity level of the event. Defaults to `error`.\n\n Example:\n\n ```json\n {"level": "warning"}\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Severity level of an event or breadcrumb.",
                                        "type": "string",
                                        "enum": [
                                            "debug",
                                            "info",
                                            "warning",
                                            "error",
                                            "fatal",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "logentry" in data_keys:
                    data_keys.remove("logentry")
                    data__logentry = data["logentry"]
                    data__logentry_any_of_count10 = 0
                    if not data__logentry_any_of_count10:
                        try:
                            validate___definitions_logentry(
                                data__logentry,
                                custom_formats,
                                (name_prefix or "data") + ".logentry",
                            )
                            data__logentry_any_of_count10 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__logentry_any_of_count10:
                        try:
                            if not isinstance(data__logentry, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".logentry must be null",
                                    value=data__logentry,
                                    name="" + (name_prefix or "data") + ".logentry",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__logentry_any_of_count10 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__logentry_any_of_count10:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".logentry cannot be validated by any definition",
                            value=data__logentry,
                            name="" + (name_prefix or "data") + ".logentry",
                            definition={
                                "description": " Custom parameterized message for this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' A log entry message.\n\n A log message is similar to the `message` attribute on the event itself but\n can additionally hold optional parameters.\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like %s",\n     "params": ["this"]\n   }\n }\n ```\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like {foo}",\n     "params": {"foo": "this"}\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "formatted": {
                                                        "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Message"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "message": {
                                                        "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Message"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "params": {
                                                        "description": " Parameters to be interpolated into the log message. This can be an array of positional\n parameters as well as a mapping of named arguments to their values.",
                                                        "default": None,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "logger" in data_keys:
                    data_keys.remove("logger")
                    data__logger = data["logger"]
                    if not isinstance(data__logger, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".logger must be string or null",
                            value=data__logger,
                            name="" + (name_prefix or "data") + ".logger",
                            definition={
                                "description": " Logger that created the event.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "modules" in data_keys:
                    data_keys.remove("modules")
                    data__modules = data["modules"]
                    if not isinstance(data__modules, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".modules must be object or null",
                            value=data__modules,
                            name="" + (name_prefix or "data") + ".modules",
                            definition={
                                "description": ' Name and versions of all installed modules/packages/dependencies in the current\n environment/application.\n\n ```json\n { "django": "3.0.0", "celery": "4.2.1" }\n ```\n\n In Python this is a list of installed packages as reported by `pkg_resources` together with\n their reported version string.\n\n This is primarily used for suggesting to enable certain SDK integrations from within the UI\n and for making informed decisions on which frameworks to support in future development\n efforts.',
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            rule="type",
                        )
                    data__modules_is_dict = isinstance(data__modules, dict)
                    if data__modules_is_dict:
                        data__modules_keys = set(data__modules.keys())
                        for data__modules_key in data__modules_keys:
                            if data__modules_key not in []:
                                data__modules_value = data__modules.get(
                                    data__modules_key
                                )
                                if not isinstance(data__modules_value, (str, NoneType)):
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + ".modules.{data__modules_key}".format(
                                            **locals()
                                        )
                                        + " must be string or null",
                                        value=data__modules_value,
                                        name=""
                                        + (name_prefix or "data")
                                        + ".modules.{data__modules_key}".format(
                                            **locals()
                                        )
                                        + "",
                                        definition={"type": ["string", "null"]},
                                        rule="type",
                                    )
                if "platform" in data_keys:
                    data_keys.remove("platform")
                    data__platform = data["platform"]
                    if not isinstance(data__platform, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".platform must be string or null",
                            value=data__platform,
                            name="" + (name_prefix or "data") + ".platform",
                            definition={
                                "description": ' Platform identifier of this event (defaults to "other").\n\n A string representing the platform the SDK is submitting from. This will be used by the\n Sentry interface to customize various components in the interface, but also to enter or\n skip stacktrace processing.\n\n Acceptable values are: `as3`, `c`, `cfml`, `cocoa`, `csharp`, `elixir`, `haskell`, `go`,\n `groovy`, `java`, `javascript`, `native`, `node`, `objc`, `other`, `perl`, `php`, `python`,\n `ruby`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "received" in data_keys:
                    data_keys.remove("received")
                    data__received = data["received"]
                    data__received_any_of_count11 = 0
                    if not data__received_any_of_count11:
                        try:
                            validate___definitions_timestamp(
                                data__received,
                                custom_formats,
                                (name_prefix or "data") + ".received",
                            )
                            data__received_any_of_count11 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__received_any_of_count11:
                        try:
                            if not isinstance(data__received, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".received must be null",
                                    value=data__received,
                                    name="" + (name_prefix or "data") + ".received",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__received_any_of_count11 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__received_any_of_count11:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".received cannot be validated by any definition",
                            value=data__received,
                            name="" + (name_prefix or "data") + ".received",
                            definition={
                                "description": " Timestamp when the event has been received by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "release" in data_keys:
                    data_keys.remove("release")
                    data__release = data["release"]
                    if not isinstance(data__release, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".release must be string or null",
                            value=data__release,
                            name="" + (name_prefix or "data") + ".release",
                            definition={
                                "description": " The release version of the application.\n\n **Release versions must be unique across all projects in your organization.** This value\n can be the git SHA for the given project, or a product identifier with a semantic version.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "request" in data_keys:
                    data_keys.remove("request")
                    data__request = data["request"]
                    data__request_any_of_count12 = 0
                    if not data__request_any_of_count12:
                        try:
                            validate___definitions_request(
                                data__request,
                                custom_formats,
                                (name_prefix or "data") + ".request",
                            )
                            data__request_any_of_count12 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__request_any_of_count12:
                        try:
                            if not isinstance(data__request, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".request must be null",
                                    value=data__request,
                                    name="" + (name_prefix or "data") + ".request",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__request_any_of_count12 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__request_any_of_count12:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".request cannot be validated by any definition",
                            value=data__request,
                            name="" + (name_prefix or "data") + ".request",
                            definition={
                                "description": " Information about a web request that occurred during the event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Http request information.\n\n The Request interface contains information on a HTTP request related to the event. In client\n SDKs, this can be an outgoing request, or the request that rendered the current web page. On\n server SDKs, this could be the incoming web request that is being handled.\n\n The data variable should only contain the request body (not the query string). It can either be\n a dictionary (for standard HTTP requests) or a raw request body.\n\n ### Ordered Maps\n\n In the Request interface, several attributes can either be declared as string, object, or list\n of tuples. Sentry attempts to parse structured information from the string representation in\n such cases.\n\n Sometimes, keys can be declared multiple times, or the order of elements matters. In such\n cases, use the tuple representation over a plain object.\n\n Example of request headers as object:\n\n ```json\n {\n   "content-type": "application/json",\n   "accept": "application/json, application/xml"\n }\n ```\n\n Example of the same headers as list of tuples:\n\n ```json\n [\n   ["content-type", "application/json"],\n   ["accept", "application/json"],\n   ["accept", "application/xml"]\n ]\n ```\n\n Example of a fully populated request object:\n\n ```json\n {\n   "request": {\n     "method": "POST",\n     "url": "http://absolute.uri/foo",\n     "query_string": "query=foobar&page=2",\n     "data": {\n       "foo": "bar"\n     },\n     "cookies": "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;",\n     "headers": {\n       "content-type": "text/html"\n     },\n     "env": {\n       "REMOTE_ADDR": "192.168.0.1"\n     }\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "api_target": {
                                                        "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "body_size": {
                                                        "description": " HTTP request body size.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "cookies": {
                                                        "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Cookies"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "data": {
                                                        "description": " Request data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                                        "default": None,
                                                    },
                                                    "env": {
                                                        "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "fragment": {
                                                        "description": " The fragment of the request URI.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "headers": {
                                                        "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Headers"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "inferred_content_type": {
                                                        "description": " The inferred content type of the request payload.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "method": {
                                                        "description": " HTTP request method.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "protocol": {
                                                        "description": " HTTP protocol.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "query_string": {
                                                        "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "anyOf": [
                                                                    {"type": "string"},
                                                                    {
                                                                        "anyOf": [
                                                                            {
                                                                                "type": "object",
                                                                                "additionalProperties": {
                                                                                    "type": [
                                                                                        "string",
                                                                                        "null",
                                                                                    ]
                                                                                },
                                                                            },
                                                                            {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": [
                                                                                        "array",
                                                                                        "null",
                                                                                    ],
                                                                                    "items": [
                                                                                        {
                                                                                            "type": [
                                                                                                "string",
                                                                                                "null",
                                                                                            ]
                                                                                        },
                                                                                        {
                                                                                            "type": [
                                                                                                "string",
                                                                                                "null",
                                                                                            ]
                                                                                        },
                                                                                    ],
                                                                                    "maxItems": 2,
                                                                                    "minItems": 2,
                                                                                },
                                                                            },
                                                                        ]
                                                                    },
                                                                ]
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "url": {
                                                        "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "sdk" in data_keys:
                    data_keys.remove("sdk")
                    data__sdk = data["sdk"]
                    data__sdk_any_of_count13 = 0
                    if not data__sdk_any_of_count13:
                        try:
                            validate___definitions_clientsdkinfo(
                                data__sdk,
                                custom_formats,
                                (name_prefix or "data") + ".sdk",
                            )
                            data__sdk_any_of_count13 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__sdk_any_of_count13:
                        try:
                            if not isinstance(data__sdk, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".sdk must be null",
                                    value=data__sdk,
                                    name="" + (name_prefix or "data") + ".sdk",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__sdk_any_of_count13 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__sdk_any_of_count13:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sdk cannot be validated by any definition",
                            value=data__sdk,
                            name="" + (name_prefix or "data") + ".sdk",
                            definition={
                                "description": " Information about the Sentry SDK that generated this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The SDK Interface describes the Sentry SDK and its configuration used to capture and transmit an event.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["name", "version"],
                                                "properties": {
                                                    "features": {
                                                        "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    "integrations": {
                                                        "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    "name": {
                                                        "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                                        "type": ["string", "null"],
                                                    },
                                                    "packages": {
                                                        "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ClientSdkPackage"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "version": {
                                                        "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "server_name" in data_keys:
                    data_keys.remove("server_name")
                    data__servername = data["server_name"]
                    if not isinstance(data__servername, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".server_name must be string or null",
                            value=data__servername,
                            name="" + (name_prefix or "data") + ".server_name",
                            definition={
                                "description": " Server or device name the event was generated on.\n\n This is supposed to be a hostname.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "stacktrace" in data_keys:
                    data_keys.remove("stacktrace")
                    data__stacktrace = data["stacktrace"]
                    data__stacktrace_any_of_count14 = 0
                    if not data__stacktrace_any_of_count14:
                        try:
                            validate___definitions_stacktrace(
                                data__stacktrace,
                                custom_formats,
                                (name_prefix or "data") + ".stacktrace",
                            )
                            data__stacktrace_any_of_count14 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__stacktrace_any_of_count14:
                        try:
                            if not isinstance(data__stacktrace, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".stacktrace must be null",
                                    value=data__stacktrace,
                                    name="" + (name_prefix or "data") + ".stacktrace",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__stacktrace_any_of_count14 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__stacktrace_any_of_count14:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".stacktrace cannot be validated by any definition",
                            value=data__stacktrace,
                            name="" + (name_prefix or "data") + ".stacktrace",
                            definition={
                                "description": " Event stacktrace.\n\n DEPRECATED: Prefer `threads` or `exception` depending on which is more appropriate.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "tags" in data_keys:
                    data_keys.remove("tags")
                    data__tags = data["tags"]
                    data__tags_any_of_count15 = 0
                    if not data__tags_any_of_count15:
                        try:
                            validate___definitions_tags(
                                data__tags,
                                custom_formats,
                                (name_prefix or "data") + ".tags",
                            )
                            data__tags_any_of_count15 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__tags_any_of_count15:
                        try:
                            if not isinstance(data__tags, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".tags must be null",
                                    value=data__tags,
                                    name="" + (name_prefix or "data") + ".tags",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__tags_any_of_count15 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__tags_any_of_count15:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".tags cannot be validated by any definition",
                            value=data__tags,
                            name="" + (name_prefix or "data") + ".tags",
                            definition={
                                "description": " Custom tags for this event.\n\n A map or list of tags for this event. Each tag must be less than 200 characters.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Manual key/value tag pairs.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TagEntry"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "threads" in data_keys:
                    data_keys.remove("threads")
                    data__threads = data["threads"]
                    if not isinstance(data__threads, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".threads must be object or null",
                            value=data__threads,
                            name="" + (name_prefix or "data") + ".threads",
                            definition={
                                "description": " Threads that were active when the event occurred.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "crashed": {
                                                                    "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "current": {
                                                                    "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "held_locks": {
                                                                    "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "object",
                                                                        "null",
                                                                    ],
                                                                    "additionalProperties": {
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/LockReason"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ]
                                                                    },
                                                                },
                                                                "id": {
                                                                    "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "main": {
                                                                    "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "name": {
                                                                    "description": " Display name of this thread.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stacktrace": {
                                                                    "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Stacktrace"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "state": {
                                                                    "description": " Thread state at the time of the crash.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            rule="type",
                        )
                    data__threads_is_dict = isinstance(data__threads, dict)
                    if data__threads_is_dict:
                        data__threads__missing_keys = (
                            set(["values"]) - data__threads.keys()
                        )
                        if data__threads__missing_keys:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".threads must contain "
                                + (
                                    str(sorted(data__threads__missing_keys))
                                    + " properties"
                                ),
                                value=data__threads,
                                name="" + (name_prefix or "data") + ".threads",
                                definition={
                                    "description": " Threads that were active when the event occurred.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "required": ["values"],
                                    "properties": {
                                        "values": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "crashed": {
                                                                        "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "current": {
                                                                        "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "held_locks": {
                                                                        "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "object",
                                                                            "null",
                                                                        ],
                                                                        "additionalProperties": {
                                                                            "anyOf": [
                                                                                {
                                                                                    "$ref": "#/definitions/LockReason"
                                                                                },
                                                                                {
                                                                                    "type": "null"
                                                                                },
                                                                            ]
                                                                        },
                                                                    },
                                                                    "id": {
                                                                        "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/ThreadId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "main": {
                                                                        "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "name": {
                                                                        "description": " Display name of this thread.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "stacktrace": {
                                                                        "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Stacktrace"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "state": {
                                                                        "description": " Thread state at the time of the crash.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                        }
                                    },
                                },
                                rule="required",
                            )
                        data__threads_keys = set(data__threads.keys())
                        if "values" in data__threads_keys:
                            data__threads_keys.remove("values")
                            data__threads__values = data__threads["values"]
                            if not isinstance(data__threads__values, (list, tuple)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".threads.values must be array",
                                    value=data__threads__values,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".threads.values",
                                    definition={
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "crashed": {
                                                                    "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "current": {
                                                                    "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "held_locks": {
                                                                    "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "object",
                                                                        "null",
                                                                    ],
                                                                    "additionalProperties": {
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/LockReason"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ]
                                                                    },
                                                                },
                                                                "id": {
                                                                    "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "main": {
                                                                    "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "name": {
                                                                    "description": " Display name of this thread.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stacktrace": {
                                                                    "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Stacktrace"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "state": {
                                                                    "description": " Thread state at the time of the crash.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    rule="type",
                                )
                            data__threads__values_is_list = isinstance(
                                data__threads__values, (list, tuple)
                            )
                            if data__threads__values_is_list:
                                data__threads__values_len = len(data__threads__values)
                                for (
                                    data__threads__values_x,
                                    data__threads__values_item,
                                ) in enumerate(data__threads__values):
                                    data__threads__values_item_any_of_count16 = 0
                                    if not data__threads__values_item_any_of_count16:
                                        try:
                                            validate___definitions_thread(
                                                data__threads__values_item,
                                                custom_formats,
                                                (name_prefix or "data")
                                                + ".threads.values[{data__threads__values_x}]".format(
                                                    **locals()
                                                ),
                                            )
                                            data__threads__values_item_any_of_count16 += (
                                                1
                                            )
                                        except JsonSchemaValueException:
                                            pass
                                    if not data__threads__values_item_any_of_count16:
                                        try:
                                            if not isinstance(
                                                data__threads__values_item, (NoneType)
                                            ):
                                                raise JsonSchemaValueException(
                                                    ""
                                                    + (name_prefix or "data")
                                                    + ".threads.values[{data__threads__values_x}]".format(
                                                        **locals()
                                                    )
                                                    + " must be null",
                                                    value=data__threads__values_item,
                                                    name=""
                                                    + (name_prefix or "data")
                                                    + ".threads.values[{data__threads__values_x}]".format(
                                                        **locals()
                                                    )
                                                    + "",
                                                    definition={"type": "null"},
                                                    rule="type",
                                                )
                                            data__threads__values_item_any_of_count16 += (
                                                1
                                            )
                                        except JsonSchemaValueException:
                                            pass
                                    if not data__threads__values_item_any_of_count16:
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".threads.values[{data__threads__values_x}]".format(
                                                **locals()
                                            )
                                            + " cannot be validated by any definition",
                                            value=data__threads__values_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".threads.values[{data__threads__values_x}]".format(
                                                **locals()
                                            )
                                            + "",
                                            definition={
                                                "anyOf": [
                                                    {
                                                        "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "crashed": {
                                                                        "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "current": {
                                                                        "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "held_locks": {
                                                                        "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "object",
                                                                            "null",
                                                                        ],
                                                                        "additionalProperties": {
                                                                            "anyOf": [
                                                                                {
                                                                                    "$ref": "#/definitions/LockReason"
                                                                                },
                                                                                {
                                                                                    "type": "null"
                                                                                },
                                                                            ]
                                                                        },
                                                                    },
                                                                    "id": {
                                                                        "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/ThreadId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "main": {
                                                                        "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "name": {
                                                                        "description": " Display name of this thread.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "stacktrace": {
                                                                        "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Stacktrace"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "state": {
                                                                        "description": " Thread state at the time of the crash.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                            rule="anyOf",
                                        )
                if "time_spent" in data_keys:
                    data_keys.remove("time_spent")
                    data__timespent = data["time_spent"]
                    if (
                        not isinstance(data__timespent, (int, NoneType))
                        and not (
                            isinstance(data__timespent, float)
                            and data__timespent.is_integer()
                        )
                        or isinstance(data__timespent, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".time_spent must be integer or null",
                            value=data__timespent,
                            name="" + (name_prefix or "data") + ".time_spent",
                            definition={
                                "description": " Time since the start of the transaction until the error occurred.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__timespent, (int, float, Decimal)):
                        if data__timespent < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".time_spent must be bigger than or equal to 0.0",
                                value=data__timespent,
                                name="" + (name_prefix or "data") + ".time_spent",
                                definition={
                                    "description": " Time since the start of the transaction until the error occurred.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "timestamp" in data_keys:
                    data_keys.remove("timestamp")
                    data__timestamp = data["timestamp"]
                    data__timestamp_any_of_count17 = 0
                    if not data__timestamp_any_of_count17:
                        try:
                            validate___definitions_timestamp(
                                data__timestamp,
                                custom_formats,
                                (name_prefix or "data") + ".timestamp",
                            )
                            data__timestamp_any_of_count17 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__timestamp_any_of_count17:
                        try:
                            if not isinstance(data__timestamp, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".timestamp must be null",
                                    value=data__timestamp,
                                    name="" + (name_prefix or "data") + ".timestamp",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__timestamp_any_of_count17 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__timestamp_any_of_count17:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".timestamp cannot be validated by any definition",
                            value=data__timestamp,
                            name="" + (name_prefix or "data") + ".timestamp",
                            definition={
                                "description": ' Timestamp when the event was created.\n\n Indicates when the event was created in the Sentry SDK. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Timezone is assumed to be UTC if missing.\n\n Sub-microsecond precision is not preserved with numeric values due to precision\n limitations with floats (at least in our systems). With that caveat in mind, just send\n whatever is easiest to produce.\n\n All timestamps in the event protocol are formatted this way.\n\n # Example\n\n All of these are the same date:\n\n ```json\n { "timestamp": "2011-05-02T17:41:36Z" }\n { "timestamp": "2011-05-02T17:41:36" }\n { "timestamp": "2011-05-02T17:41:36.000" }\n { "timestamp": 1304358096.0 }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "transaction" in data_keys:
                    data_keys.remove("transaction")
                    data__transaction = data["transaction"]
                    if not isinstance(data__transaction, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".transaction must be string or null",
                            value=data__transaction,
                            name="" + (name_prefix or "data") + ".transaction",
                            definition={
                                "description": ' Transaction name of the event.\n\n For example, in a web app, this might be the route name (`"/users/<username>/"` or\n `UserView`), in a task queue it might be the function + module name.',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "transaction_info" in data_keys:
                    data_keys.remove("transaction_info")
                    data__transactioninfo = data["transaction_info"]
                    data__transactioninfo_any_of_count18 = 0
                    if not data__transactioninfo_any_of_count18:
                        try:
                            validate___definitions_transactioninfo(
                                data__transactioninfo,
                                custom_formats,
                                (name_prefix or "data") + ".transaction_info",
                            )
                            data__transactioninfo_any_of_count18 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__transactioninfo_any_of_count18:
                        try:
                            if not isinstance(data__transactioninfo, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".transaction_info must be null",
                                    value=data__transactioninfo,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".transaction_info",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__transactioninfo_any_of_count18 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__transactioninfo_any_of_count18:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".transaction_info cannot be validated by any definition",
                            value=data__transactioninfo,
                            name="" + (name_prefix or "data") + ".transaction_info",
                            definition={
                                "description": " Additional information about the name of the transaction.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Additional information about the name of the transaction.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "changes": {
                                                        "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TransactionNameChange"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "original": {
                                                        "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "propagations": {
                                                        "description": " The total number of propagations during the transaction.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "source": {
                                                        "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/TransactionSource"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "type" in data_keys:
                    data_keys.remove("type")
                    data__type = data["type"]
                    data__type_any_of_count19 = 0
                    if not data__type_any_of_count19:
                        try:
                            validate___definitions_eventtype(
                                data__type,
                                custom_formats,
                                (name_prefix or "data") + ".type",
                            )
                            data__type_any_of_count19 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__type_any_of_count19:
                        try:
                            if not isinstance(data__type, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".type must be null",
                                    value=data__type,
                                    name="" + (name_prefix or "data") + ".type",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__type_any_of_count19 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__type_any_of_count19:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".type cannot be validated by any definition",
                            value=data__type,
                            name="" + (name_prefix or "data") + ".type",
                            definition={
                                "description": ' Type of the event. Defaults to `default`.\n\n The event type determines how Sentry handles the event and has an impact on processing, rate\n limiting, and quotas. There are three fundamental classes of event types:\n\n  - **Error monitoring events**: Processed and grouped into unique issues based on their\n    exception stack traces and error messages.\n  - **Security events**: Derived from Browser security violation reports and grouped into\n    unique issues based on the endpoint and violation. SDKs do not send such events.\n  - **Transaction events** (`transaction`): Contain operation spans and collected into traces\n    for performance monitoring.\n\n Transactions must explicitly specify the `"transaction"` event type. In all other cases,\n Sentry infers the appropriate event type from the payload and overrides the stated type.\n SDKs should not send an event type other than for transactions.\n\n Example:\n\n ```json\n {\n   "type": "transaction",\n   "spans": []\n }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "The type of an event.\n\nThe event type determines how Sentry handles the event and has an impact on processing, rate limiting, and quotas. There are three fundamental classes of event types:\n\n- **Error monitoring events** (`default`, `error`): Processed and grouped into unique issues based on their exception stack traces and error messages. - **Security events** (`csp`, `hpkp`, `expectct`, `expectstaple`): Derived from Browser security violation reports and grouped into unique issues based on the endpoint and violation. SDKs do not send such events. - **Transaction events** (`transaction`): Contain operation spans and collected into traces for performance monitoring.",
                                        "type": "string",
                                        "enum": [
                                            "error",
                                            "csp",
                                            "hpkp",
                                            "expectct",
                                            "expectstaple",
                                            "nel",
                                            "transaction",
                                            "userreportv2",
                                            "default",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "user" in data_keys:
                    data_keys.remove("user")
                    data__user = data["user"]
                    data__user_any_of_count20 = 0
                    if not data__user_any_of_count20:
                        try:
                            validate___definitions_user(
                                data__user,
                                custom_formats,
                                (name_prefix or "data") + ".user",
                            )
                            data__user_any_of_count20 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__user_any_of_count20:
                        try:
                            if not isinstance(data__user, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".user must be null",
                                    value=data__user,
                                    name="" + (name_prefix or "data") + ".user",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__user_any_of_count20 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__user_any_of_count20:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".user cannot be validated by any definition",
                            value=data__user,
                            name="" + (name_prefix or "data") + ".user",
                            definition={
                                "description": " Information about the user who triggered this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Information about the user who triggered an event.\n\n ```json\n {\n   "user": {\n     "id": "unique_id",\n     "username": "my_user",\n     "email": "foo@example.com",\n     "ip_address": "127.0.0.1",\n     "subscription": "basic"\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "data": {
                                                        "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "email": {
                                                        "description": " Email address of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "geo": {
                                                        "description": " Approximate geographical location of the end user or device.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Geo"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "id": {
                                                        "description": " Unique identifier of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "ip_address": {
                                                        "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/String"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "name": {
                                                        "description": " Human readable name of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "segment": {
                                                        "description": " The user segment, for apps that divide users in user segments.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry_user": {
                                                        "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "username": {
                                                        "description": " Username of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "version" in data_keys:
                    data_keys.remove("version")
                    data__version = data["version"]
                    if not isinstance(data__version, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version must be string or null",
                            value=data__version,
                            name="" + (name_prefix or "data") + ".version",
                            definition={
                                "description": " Version",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "breadcrumbs": {
                                    "description": " List of breadcrumbs recorded before this event.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "required": ["values"],
                                    "properties": {
                                        "values": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "category": {
                                                                        "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "data": {
                                                                        "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "object",
                                                                            "null",
                                                                        ],
                                                                        "additionalProperties": True,
                                                                    },
                                                                    "event_id": {
                                                                        "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/EventId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "level": {
                                                                        "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Level"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "message": {
                                                                        "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "timestamp": {
                                                                        "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Timestamp"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "type": {
                                                                        "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                        }
                                    },
                                },
                                "contexts": {
                                    "description": " Contexts describing the environment (e.g. device, os or browser).",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " The Contexts interface provides additional context data. Typically, this is data related to the\n current user and the environment. For example, the device or application version. Its canonical\n name is `contexts`.\n\n The `contexts` type can be used to define arbitrary contextual data on the event. It accepts an\n object of key/value pairs. The key is the “alias” of the context and can be freely chosen.\n However, as per policy, it should match the type of the context unless there are two values for\n a type. You can omit `type` if the key name is the type.\n\n Unknown data for the contexts is rendered as a key/value list.\n\n For more details about sending additional data with your event, see the [full documentation on\n Additional Data](https://docs.sentry.io/enriching-error-data/additional-data/).",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "additionalProperties": {
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/ContextInner"
                                                            },
                                                            {"type": "null"},
                                                        ]
                                                    },
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "culprit": {
                                    "description": " Custom culprit of the event.\n\n This field is deprecated and shall not be set by client SDKs.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "debug_meta": {
                                    "description": " Meta data for event processing and debugging.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": ' Debugging and processing meta information.\n\n The debug meta interface carries debug information for processing errors and crash reports.\n Sentry amends the information in this interface.\n\n Example (look at field types to see more detail):\n\n ```json\n {\n   "debug_meta": {\n     "images": [],\n     "sdk_info": {\n       "sdk_name": "iOS",\n       "version_major": 10,\n       "version_minor": 3,\n       "version_patchlevel": 0\n     }\n   }\n }\n ```',
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "images": {
                                                            "description": " List of debug information files (debug images).",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/DebugImage"
                                                                    },
                                                                    {"type": "null"},
                                                                ]
                                                            },
                                                        },
                                                        "sdk_info": {
                                                            "description": " Information about the system SDK (e.g. iOS SDK).",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/SystemSdkInfo"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "dist": {
                                    "description": " Program's distribution identifier.\n\n The distribution of the application.\n\n Distributions are used to disambiguate build or deployment variants of the same release of\n an application. For example, the dist can be the build number of an XCode build or the\n version code of an Android build.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "environment": {
                                    "description": ' The environment name, such as `production` or `staging`.\n\n ```json\n { "environment": "production" }\n ```',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "errors": {
                                    "description": " Errors encountered during processing. Intended to be phased out in favor of\n annotation/metadata system.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {
                                        "anyOf": [
                                            {
                                                "description": " An event processing error.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "required": ["type"],
                                                        "properties": {
                                                            "name": {
                                                                "description": " Affected key or deep path.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "type": {
                                                                "description": " The error kind.",
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "value": {
                                                                "description": " The original value causing this error.",
                                                                "default": None,
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                },
                                "event_id": {
                                    "description": ' Unique identifier of this event.\n\n Hexadecimal string representing a uuid4 value. The length is exactly 32 characters. Dashes\n are not allowed. Has to be lowercase.\n\n Even though this field is backfilled on the server with a new uuid4, it is strongly\n recommended to generate that uuid4 clientside. There are some features like user feedback\n which are easier to implement that way, and debugging in case events get lost in your\n Sentry installation is also easier.\n\n Example:\n\n ```json\n {\n   "event_id": "fc6d8c0c43fc4630ad850ee518f1b9d0"\n }\n ```',
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Wrapper around a UUID with slightly different formatting.",
                                            "anyOf": [
                                                {"type": "string", "format": "uuid"}
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "exception": {
                                    "description": " One or multiple chained (nested) exceptions.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "required": ["values"],
                                    "properties": {
                                        "values": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "mechanism": {
                                                                        "description": " Mechanism by which this exception was generated and handled.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Mechanism"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "module": {
                                                                        "description": " The optional module, or package which the exception type lives in.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "stacktrace": {
                                                                        "description": " Stack trace containing frames of this exception.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Stacktrace"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "thread_id": {
                                                                        "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/ThreadId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "type": {
                                                                        "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "value": {
                                                                        "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/JsonLenientString"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                        }
                                    },
                                },
                                "extra": {
                                    "description": ' Arbitrary extra information set by the user.\n\n ```json\n {\n     "extra": {\n         "my_key": 1,\n         "some_other_value": "foo bar"\n     }\n }```',
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                                "fingerprint": {
                                    "description": ' Manual fingerprint override.\n\n A list of strings used to dictate how this event is supposed to be grouped with other\n events into issues. For more information about overriding grouping see [Customize Grouping\n with Fingerprints](https://docs.sentry.io/data-management/event-grouping/).\n\n ```json\n {\n     "fingerprint": ["myrpc", "POST", "/foo.bar"]\n }',
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A fingerprint value.",
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": {"type": "string"},
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "level": {
                                    "description": ' Severity level of the event. Defaults to `error`.\n\n Example:\n\n ```json\n {"level": "warning"}\n ```',
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Severity level of an event or breadcrumb.",
                                            "type": "string",
                                            "enum": [
                                                "debug",
                                                "info",
                                                "warning",
                                                "error",
                                                "fatal",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "logentry": {
                                    "description": " Custom parameterized message for this event.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": ' A log entry message.\n\n A log message is similar to the `message` attribute on the event itself but\n can additionally hold optional parameters.\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like %s",\n     "params": ["this"]\n   }\n }\n ```\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like {foo}",\n     "params": {"foo": "this"}\n   }\n }\n ```',
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "formatted": {
                                                            "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Message"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "message": {
                                                            "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Message"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "params": {
                                                            "description": " Parameters to be interpolated into the log message. This can be an array of positional\n parameters as well as a mapping of named arguments to their values.",
                                                            "default": None,
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "logger": {
                                    "description": " Logger that created the event.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "modules": {
                                    "description": ' Name and versions of all installed modules/packages/dependencies in the current\n environment/application.\n\n ```json\n { "django": "3.0.0", "celery": "4.2.1" }\n ```\n\n In Python this is a list of installed packages as reported by `pkg_resources` together with\n their reported version string.\n\n This is primarily used for suggesting to enable certain SDK integrations from within the UI\n and for making informed decisions on which frameworks to support in future development\n efforts.',
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": {
                                        "type": ["string", "null"]
                                    },
                                },
                                "platform": {
                                    "description": ' Platform identifier of this event (defaults to "other").\n\n A string representing the platform the SDK is submitting from. This will be used by the\n Sentry interface to customize various components in the interface, but also to enter or\n skip stacktrace processing.\n\n Acceptable values are: `as3`, `c`, `cfml`, `cocoa`, `csharp`, `elixir`, `haskell`, `go`,\n `groovy`, `java`, `javascript`, `native`, `node`, `objc`, `other`, `perl`, `php`, `python`,\n `ruby`',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "received": {
                                    "description": " Timestamp when the event has been received by Sentry.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                            "anyOf": [
                                                {"type": "number", "format": "double"},
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "release": {
                                    "description": " The release version of the application.\n\n **Release versions must be unique across all projects in your organization.** This value\n can be the git SHA for the given project, or a product identifier with a semantic version.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "request": {
                                    "description": " Information about a web request that occurred during the event.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": ' Http request information.\n\n The Request interface contains information on a HTTP request related to the event. In client\n SDKs, this can be an outgoing request, or the request that rendered the current web page. On\n server SDKs, this could be the incoming web request that is being handled.\n\n The data variable should only contain the request body (not the query string). It can either be\n a dictionary (for standard HTTP requests) or a raw request body.\n\n ### Ordered Maps\n\n In the Request interface, several attributes can either be declared as string, object, or list\n of tuples. Sentry attempts to parse structured information from the string representation in\n such cases.\n\n Sometimes, keys can be declared multiple times, or the order of elements matters. In such\n cases, use the tuple representation over a plain object.\n\n Example of request headers as object:\n\n ```json\n {\n   "content-type": "application/json",\n   "accept": "application/json, application/xml"\n }\n ```\n\n Example of the same headers as list of tuples:\n\n ```json\n [\n   ["content-type", "application/json"],\n   ["accept", "application/json"],\n   ["accept", "application/xml"]\n ]\n ```\n\n Example of a fully populated request object:\n\n ```json\n {\n   "request": {\n     "method": "POST",\n     "url": "http://absolute.uri/foo",\n     "query_string": "query=foobar&page=2",\n     "data": {\n       "foo": "bar"\n     },\n     "cookies": "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;",\n     "headers": {\n       "content-type": "text/html"\n     },\n     "env": {\n       "REMOTE_ADDR": "192.168.0.1"\n     }\n   }\n }\n ```',
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "api_target": {
                                                            "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "body_size": {
                                                            "description": " HTTP request body size.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "cookies": {
                                                            "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Cookies"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "data": {
                                                            "description": " Request data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                                            "default": None,
                                                        },
                                                        "env": {
                                                            "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                                            "default": None,
                                                            "type": ["object", "null"],
                                                            "additionalProperties": True,
                                                        },
                                                        "fragment": {
                                                            "description": " The fragment of the request URI.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "headers": {
                                                            "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Headers"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "inferred_content_type": {
                                                            "description": " The inferred content type of the request payload.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "method": {
                                                            "description": " HTTP request method.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "protocol": {
                                                            "description": " HTTP protocol.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "query_string": {
                                                            "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "type": "string"
                                                                        },
                                                                        {
                                                                            "anyOf": [
                                                                                {
                                                                                    "type": "object",
                                                                                    "additionalProperties": {
                                                                                        "type": [
                                                                                            "string",
                                                                                            "null",
                                                                                        ]
                                                                                    },
                                                                                },
                                                                                {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                        "type": [
                                                                                            "array",
                                                                                            "null",
                                                                                        ],
                                                                                        "items": [
                                                                                            {
                                                                                                "type": [
                                                                                                    "string",
                                                                                                    "null",
                                                                                                ]
                                                                                            },
                                                                                            {
                                                                                                "type": [
                                                                                                    "string",
                                                                                                    "null",
                                                                                                ]
                                                                                            },
                                                                                        ],
                                                                                        "maxItems": 2,
                                                                                        "minItems": 2,
                                                                                    },
                                                                                },
                                                                            ]
                                                                        },
                                                                    ]
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "url": {
                                                            "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "sdk": {
                                    "description": " Information about the Sentry SDK that generated this event.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " The SDK Interface describes the Sentry SDK and its configuration used to capture and transmit an event.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["name", "version"],
                                                    "properties": {
                                                        "features": {
                                                            "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        "integrations": {
                                                            "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        "name": {
                                                            "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                                            "type": ["string", "null"],
                                                        },
                                                        "packages": {
                                                            "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/ClientSdkPackage"
                                                                    },
                                                                    {"type": "null"},
                                                                ]
                                                            },
                                                        },
                                                        "version": {
                                                            "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "server_name": {
                                    "description": " Server or device name the event was generated on.\n\n This is supposed to be a hostname.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "stacktrace": {
                                    "description": " Event stacktrace.\n\n DEPRECATED: Prefer `threads` or `exception` depending on which is more appropriate.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {"$ref": "#/definitions/RawStacktrace"}
                                            ]
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "tags": {
                                    "description": " Custom tags for this event.\n\n A map or list of tags for this event. Each tag must be less than 200 characters.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Manual key/value tag pairs.",
                                            "anyOf": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "additionalProperties": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/TagEntry"
                                                                    },
                                                                    {"type": "null"},
                                                                ]
                                                            },
                                                        },
                                                    ]
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "threads": {
                                    "description": " Threads that were active when the event occurred.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "required": ["values"],
                                    "properties": {
                                        "values": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "properties": {
                                                                    "crashed": {
                                                                        "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "current": {
                                                                        "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "held_locks": {
                                                                        "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "object",
                                                                            "null",
                                                                        ],
                                                                        "additionalProperties": {
                                                                            "anyOf": [
                                                                                {
                                                                                    "$ref": "#/definitions/LockReason"
                                                                                },
                                                                                {
                                                                                    "type": "null"
                                                                                },
                                                                            ]
                                                                        },
                                                                    },
                                                                    "id": {
                                                                        "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/ThreadId"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "main": {
                                                                        "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "boolean",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "name": {
                                                                        "description": " Display name of this thread.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                    "stacktrace": {
                                                                        "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                                                        "default": None,
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/Stacktrace"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ],
                                                                    },
                                                                    "state": {
                                                                        "description": " Thread state at the time of the crash.",
                                                                        "default": None,
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ],
                                                                    },
                                                                },
                                                                "additionalProperties": False,
                                                            }
                                                        ],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                        }
                                    },
                                },
                                "time_spent": {
                                    "description": " Time since the start of the transaction until the error occurred.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "timestamp": {
                                    "description": ' Timestamp when the event was created.\n\n Indicates when the event was created in the Sentry SDK. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Timezone is assumed to be UTC if missing.\n\n Sub-microsecond precision is not preserved with numeric values due to precision\n limitations with floats (at least in our systems). With that caveat in mind, just send\n whatever is easiest to produce.\n\n All timestamps in the event protocol are formatted this way.\n\n # Example\n\n All of these are the same date:\n\n ```json\n { "timestamp": "2011-05-02T17:41:36Z" }\n { "timestamp": "2011-05-02T17:41:36" }\n { "timestamp": "2011-05-02T17:41:36.000" }\n { "timestamp": 1304358096.0 }\n ```',
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                            "anyOf": [
                                                {"type": "number", "format": "double"},
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "transaction": {
                                    "description": ' Transaction name of the event.\n\n For example, in a web app, this might be the route name (`"/users/<username>/"` or\n `UserView`), in a task queue it might be the function + module name.',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "transaction_info": {
                                    "description": " Additional information about the name of the transaction.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Additional information about the name of the transaction.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "changes": {
                                                            "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/TransactionNameChange"
                                                                    },
                                                                    {"type": "null"},
                                                                ]
                                                            },
                                                        },
                                                        "original": {
                                                            "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "propagations": {
                                                            "description": " The total number of propagations during the transaction.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "source": {
                                                            "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TransactionSource"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "type": {
                                    "description": ' Type of the event. Defaults to `default`.\n\n The event type determines how Sentry handles the event and has an impact on processing, rate\n limiting, and quotas. There are three fundamental classes of event types:\n\n  - **Error monitoring events**: Processed and grouped into unique issues based on their\n    exception stack traces and error messages.\n  - **Security events**: Derived from Browser security violation reports and grouped into\n    unique issues based on the endpoint and violation. SDKs do not send such events.\n  - **Transaction events** (`transaction`): Contain operation spans and collected into traces\n    for performance monitoring.\n\n Transactions must explicitly specify the `"transaction"` event type. In all other cases,\n Sentry infers the appropriate event type from the payload and overrides the stated type.\n SDKs should not send an event type other than for transactions.\n\n Example:\n\n ```json\n {\n   "type": "transaction",\n   "spans": []\n }\n ```',
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "The type of an event.\n\nThe event type determines how Sentry handles the event and has an impact on processing, rate limiting, and quotas. There are three fundamental classes of event types:\n\n- **Error monitoring events** (`default`, `error`): Processed and grouped into unique issues based on their exception stack traces and error messages. - **Security events** (`csp`, `hpkp`, `expectct`, `expectstaple`): Derived from Browser security violation reports and grouped into unique issues based on the endpoint and violation. SDKs do not send such events. - **Transaction events** (`transaction`): Contain operation spans and collected into traces for performance monitoring.",
                                            "type": "string",
                                            "enum": [
                                                "error",
                                                "csp",
                                                "hpkp",
                                                "expectct",
                                                "expectstaple",
                                                "nel",
                                                "transaction",
                                                "userreportv2",
                                                "default",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "user": {
                                    "description": " Information about the user who triggered this event.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": ' Information about the user who triggered an event.\n\n ```json\n {\n   "user": {\n     "id": "unique_id",\n     "username": "my_user",\n     "email": "foo@example.com",\n     "ip_address": "127.0.0.1",\n     "subscription": "basic"\n   }\n }\n ```',
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "data": {
                                                            "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                                            "default": None,
                                                            "type": ["object", "null"],
                                                            "additionalProperties": True,
                                                        },
                                                        "email": {
                                                            "description": " Email address of the user.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "geo": {
                                                            "description": " Approximate geographical location of the end user or device.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Geo"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "id": {
                                                            "description": " Unique identifier of the user.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "ip_address": {
                                                            "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/String"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "name": {
                                                            "description": " Human readable name of the user.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "segment": {
                                                            "description": " The user segment, for apps that divide users in user segments.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry_user": {
                                                            "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "username": {
                                                            "description": " Username of the user.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "version": {
                                    "description": " Version",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count1 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count1:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "$schema": "http://json-schema.org/draft-07/schema#",
                "title": "Event",
                "description": " The sentry v7 event structure.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "breadcrumbs": {
                                "description": " List of breadcrumbs recorded before this event.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "category": {
                                                                    "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "data": {
                                                                    "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "object",
                                                                        "null",
                                                                    ],
                                                                    "additionalProperties": True,
                                                                },
                                                                "event_id": {
                                                                    "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/EventId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "level": {
                                                                    "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Level"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "message": {
                                                                    "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "timestamp": {
                                                                    "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Timestamp"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            "contexts": {
                                "description": " Contexts describing the environment (e.g. device, os or browser).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The Contexts interface provides additional context data. Typically, this is data related to the\n current user and the environment. For example, the device or application version. Its canonical\n name is `contexts`.\n\n The `contexts` type can be used to define arbitrary contextual data on the event. It accepts an\n object of key/value pairs. The key is the “alias” of the context and can be freely chosen.\n However, as per policy, it should match the type of the context unless there are two values for\n a type. You can omit `type` if the key name is the type.\n\n Unknown data for the contexts is rendered as a key/value list.\n\n For more details about sending additional data with your event, see the [full documentation on\n Additional Data](https://docs.sentry.io/enriching-error-data/additional-data/).",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": {
                                                    "anyOf": [
                                                        {
                                                            "$ref": "#/definitions/ContextInner"
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "culprit": {
                                "description": " Custom culprit of the event.\n\n This field is deprecated and shall not be set by client SDKs.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "debug_meta": {
                                "description": " Meta data for event processing and debugging.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Debugging and processing meta information.\n\n The debug meta interface carries debug information for processing errors and crash reports.\n Sentry amends the information in this interface.\n\n Example (look at field types to see more detail):\n\n ```json\n {\n   "debug_meta": {\n     "images": [],\n     "sdk_info": {\n       "sdk_name": "iOS",\n       "version_major": 10,\n       "version_minor": 3,\n       "version_patchlevel": 0\n     }\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "images": {
                                                        "description": " List of debug information files (debug images).",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/DebugImage"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "sdk_info": {
                                                        "description": " Information about the system SDK (e.g. iOS SDK).",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/SystemSdkInfo"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "dist": {
                                "description": " Program's distribution identifier.\n\n The distribution of the application.\n\n Distributions are used to disambiguate build or deployment variants of the same release of\n an application. For example, the dist can be the build number of an XCode build or the\n version code of an Android build.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "environment": {
                                "description": ' The environment name, such as `production` or `staging`.\n\n ```json\n { "environment": "production" }\n ```',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "errors": {
                                "description": " Errors encountered during processing. Intended to be phased out in favor of\n annotation/metadata system.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " An event processing error.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["type"],
                                                    "properties": {
                                                        "name": {
                                                            "description": " Affected key or deep path.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "type": {
                                                            "description": " The error kind.",
                                                            "type": ["string", "null"],
                                                        },
                                                        "value": {
                                                            "description": " The original value causing this error.",
                                                            "default": None,
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "event_id": {
                                "description": ' Unique identifier of this event.\n\n Hexadecimal string representing a uuid4 value. The length is exactly 32 characters. Dashes\n are not allowed. Has to be lowercase.\n\n Even though this field is backfilled on the server with a new uuid4, it is strongly\n recommended to generate that uuid4 clientside. There are some features like user feedback\n which are easier to implement that way, and debugging in case events get lost in your\n Sentry installation is also easier.\n\n Example:\n\n ```json\n {\n   "event_id": "fc6d8c0c43fc4630ad850ee518f1b9d0"\n }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "exception": {
                                "description": " One or multiple chained (nested) exceptions.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "mechanism": {
                                                                    "description": " Mechanism by which this exception was generated and handled.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Mechanism"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "module": {
                                                                    "description": " The optional module, or package which the exception type lives in.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stacktrace": {
                                                                    "description": " Stack trace containing frames of this exception.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Stacktrace"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "thread_id": {
                                                                    "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "value": {
                                                                    "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/JsonLenientString"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            "extra": {
                                "description": ' Arbitrary extra information set by the user.\n\n ```json\n {\n     "extra": {\n         "my_key": 1,\n         "some_other_value": "foo bar"\n     }\n }```',
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "fingerprint": {
                                "description": ' Manual fingerprint override.\n\n A list of strings used to dictate how this event is supposed to be grouped with other\n events into issues. For more information about overriding grouping see [Customize Grouping\n with Fingerprints](https://docs.sentry.io/data-management/event-grouping/).\n\n ```json\n {\n     "fingerprint": ["myrpc", "POST", "/foo.bar"]\n }',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A fingerprint value.",
                                        "anyOf": [
                                            {
                                                "type": "array",
                                                "items": {"type": "string"},
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "level": {
                                "description": ' Severity level of the event. Defaults to `error`.\n\n Example:\n\n ```json\n {"level": "warning"}\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Severity level of an event or breadcrumb.",
                                        "type": "string",
                                        "enum": [
                                            "debug",
                                            "info",
                                            "warning",
                                            "error",
                                            "fatal",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "logentry": {
                                "description": " Custom parameterized message for this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' A log entry message.\n\n A log message is similar to the `message` attribute on the event itself but\n can additionally hold optional parameters.\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like %s",\n     "params": ["this"]\n   }\n }\n ```\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like {foo}",\n     "params": {"foo": "this"}\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "formatted": {
                                                        "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Message"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "message": {
                                                        "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Message"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "params": {
                                                        "description": " Parameters to be interpolated into the log message. This can be an array of positional\n parameters as well as a mapping of named arguments to their values.",
                                                        "default": None,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "logger": {
                                "description": " Logger that created the event.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "modules": {
                                "description": ' Name and versions of all installed modules/packages/dependencies in the current\n environment/application.\n\n ```json\n { "django": "3.0.0", "celery": "4.2.1" }\n ```\n\n In Python this is a list of installed packages as reported by `pkg_resources` together with\n their reported version string.\n\n This is primarily used for suggesting to enable certain SDK integrations from within the UI\n and for making informed decisions on which frameworks to support in future development\n efforts.',
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            "platform": {
                                "description": ' Platform identifier of this event (defaults to "other").\n\n A string representing the platform the SDK is submitting from. This will be used by the\n Sentry interface to customize various components in the interface, but also to enter or\n skip stacktrace processing.\n\n Acceptable values are: `as3`, `c`, `cfml`, `cocoa`, `csharp`, `elixir`, `haskell`, `go`,\n `groovy`, `java`, `javascript`, `native`, `node`, `objc`, `other`, `perl`, `php`, `python`,\n `ruby`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "received": {
                                "description": " Timestamp when the event has been received by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "release": {
                                "description": " The release version of the application.\n\n **Release versions must be unique across all projects in your organization.** This value\n can be the git SHA for the given project, or a product identifier with a semantic version.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "request": {
                                "description": " Information about a web request that occurred during the event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Http request information.\n\n The Request interface contains information on a HTTP request related to the event. In client\n SDKs, this can be an outgoing request, or the request that rendered the current web page. On\n server SDKs, this could be the incoming web request that is being handled.\n\n The data variable should only contain the request body (not the query string). It can either be\n a dictionary (for standard HTTP requests) or a raw request body.\n\n ### Ordered Maps\n\n In the Request interface, several attributes can either be declared as string, object, or list\n of tuples. Sentry attempts to parse structured information from the string representation in\n such cases.\n\n Sometimes, keys can be declared multiple times, or the order of elements matters. In such\n cases, use the tuple representation over a plain object.\n\n Example of request headers as object:\n\n ```json\n {\n   "content-type": "application/json",\n   "accept": "application/json, application/xml"\n }\n ```\n\n Example of the same headers as list of tuples:\n\n ```json\n [\n   ["content-type", "application/json"],\n   ["accept", "application/json"],\n   ["accept", "application/xml"]\n ]\n ```\n\n Example of a fully populated request object:\n\n ```json\n {\n   "request": {\n     "method": "POST",\n     "url": "http://absolute.uri/foo",\n     "query_string": "query=foobar&page=2",\n     "data": {\n       "foo": "bar"\n     },\n     "cookies": "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;",\n     "headers": {\n       "content-type": "text/html"\n     },\n     "env": {\n       "REMOTE_ADDR": "192.168.0.1"\n     }\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "api_target": {
                                                        "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "body_size": {
                                                        "description": " HTTP request body size.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "cookies": {
                                                        "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Cookies"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "data": {
                                                        "description": " Request data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                                        "default": None,
                                                    },
                                                    "env": {
                                                        "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "fragment": {
                                                        "description": " The fragment of the request URI.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "headers": {
                                                        "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Headers"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "inferred_content_type": {
                                                        "description": " The inferred content type of the request payload.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "method": {
                                                        "description": " HTTP request method.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "protocol": {
                                                        "description": " HTTP protocol.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "query_string": {
                                                        "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "anyOf": [
                                                                    {"type": "string"},
                                                                    {
                                                                        "anyOf": [
                                                                            {
                                                                                "type": "object",
                                                                                "additionalProperties": {
                                                                                    "type": [
                                                                                        "string",
                                                                                        "null",
                                                                                    ]
                                                                                },
                                                                            },
                                                                            {
                                                                                "type": "array",
                                                                                "items": {
                                                                                    "type": [
                                                                                        "array",
                                                                                        "null",
                                                                                    ],
                                                                                    "items": [
                                                                                        {
                                                                                            "type": [
                                                                                                "string",
                                                                                                "null",
                                                                                            ]
                                                                                        },
                                                                                        {
                                                                                            "type": [
                                                                                                "string",
                                                                                                "null",
                                                                                            ]
                                                                                        },
                                                                                    ],
                                                                                    "maxItems": 2,
                                                                                    "minItems": 2,
                                                                                },
                                                                            },
                                                                        ]
                                                                    },
                                                                ]
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "url": {
                                                        "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "sdk": {
                                "description": " Information about the Sentry SDK that generated this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The SDK Interface describes the Sentry SDK and its configuration used to capture and transmit an event.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["name", "version"],
                                                "properties": {
                                                    "features": {
                                                        "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    "integrations": {
                                                        "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    "name": {
                                                        "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                                        "type": ["string", "null"],
                                                    },
                                                    "packages": {
                                                        "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ClientSdkPackage"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "version": {
                                                        "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "server_name": {
                                "description": " Server or device name the event was generated on.\n\n This is supposed to be a hostname.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "stacktrace": {
                                "description": " Event stacktrace.\n\n DEPRECATED: Prefer `threads` or `exception` depending on which is more appropriate.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "tags": {
                                "description": " Custom tags for this event.\n\n A map or list of tags for this event. Each tag must be less than 200 characters.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Manual key/value tag pairs.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TagEntry"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "threads": {
                                "description": " Threads that were active when the event occurred.",
                                "default": None,
                                "type": ["object", "null"],
                                "required": ["values"],
                                "properties": {
                                    "values": {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "crashed": {
                                                                    "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "current": {
                                                                    "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "held_locks": {
                                                                    "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "object",
                                                                        "null",
                                                                    ],
                                                                    "additionalProperties": {
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/LockReason"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ]
                                                                    },
                                                                },
                                                                "id": {
                                                                    "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "main": {
                                                                    "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "name": {
                                                                    "description": " Display name of this thread.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stacktrace": {
                                                                    "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Stacktrace"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "state": {
                                                                    "description": " Thread state at the time of the crash.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    }
                                },
                            },
                            "time_spent": {
                                "description": " Time since the start of the transaction until the error occurred.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "timestamp": {
                                "description": ' Timestamp when the event was created.\n\n Indicates when the event was created in the Sentry SDK. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Timezone is assumed to be UTC if missing.\n\n Sub-microsecond precision is not preserved with numeric values due to precision\n limitations with floats (at least in our systems). With that caveat in mind, just send\n whatever is easiest to produce.\n\n All timestamps in the event protocol are formatted this way.\n\n # Example\n\n All of these are the same date:\n\n ```json\n { "timestamp": "2011-05-02T17:41:36Z" }\n { "timestamp": "2011-05-02T17:41:36" }\n { "timestamp": "2011-05-02T17:41:36.000" }\n { "timestamp": 1304358096.0 }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "transaction": {
                                "description": ' Transaction name of the event.\n\n For example, in a web app, this might be the route name (`"/users/<username>/"` or\n `UserView`), in a task queue it might be the function + module name.',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "transaction_info": {
                                "description": " Additional information about the name of the transaction.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Additional information about the name of the transaction.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "changes": {
                                                        "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                                        "default": None,
                                                        "type": ["array", "null"],
                                                        "items": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TransactionNameChange"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    "original": {
                                                        "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "propagations": {
                                                        "description": " The total number of propagations during the transaction.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "source": {
                                                        "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/TransactionSource"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "type": {
                                "description": ' Type of the event. Defaults to `default`.\n\n The event type determines how Sentry handles the event and has an impact on processing, rate\n limiting, and quotas. There are three fundamental classes of event types:\n\n  - **Error monitoring events**: Processed and grouped into unique issues based on their\n    exception stack traces and error messages.\n  - **Security events**: Derived from Browser security violation reports and grouped into\n    unique issues based on the endpoint and violation. SDKs do not send such events.\n  - **Transaction events** (`transaction`): Contain operation spans and collected into traces\n    for performance monitoring.\n\n Transactions must explicitly specify the `"transaction"` event type. In all other cases,\n Sentry infers the appropriate event type from the payload and overrides the stated type.\n SDKs should not send an event type other than for transactions.\n\n Example:\n\n ```json\n {\n   "type": "transaction",\n   "spans": []\n }\n ```',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "The type of an event.\n\nThe event type determines how Sentry handles the event and has an impact on processing, rate limiting, and quotas. There are three fundamental classes of event types:\n\n- **Error monitoring events** (`default`, `error`): Processed and grouped into unique issues based on their exception stack traces and error messages. - **Security events** (`csp`, `hpkp`, `expectct`, `expectstaple`): Derived from Browser security violation reports and grouped into unique issues based on the endpoint and violation. SDKs do not send such events. - **Transaction events** (`transaction`): Contain operation spans and collected into traces for performance monitoring.",
                                        "type": "string",
                                        "enum": [
                                            "error",
                                            "csp",
                                            "hpkp",
                                            "expectct",
                                            "expectstaple",
                                            "nel",
                                            "transaction",
                                            "userreportv2",
                                            "default",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "user": {
                                "description": " Information about the user who triggered this event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' Information about the user who triggered an event.\n\n ```json\n {\n   "user": {\n     "id": "unique_id",\n     "username": "my_user",\n     "email": "foo@example.com",\n     "ip_address": "127.0.0.1",\n     "subscription": "basic"\n   }\n }\n ```',
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "data": {
                                                        "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "email": {
                                                        "description": " Email address of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "geo": {
                                                        "description": " Approximate geographical location of the end user or device.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Geo"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "id": {
                                                        "description": " Unique identifier of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "ip_address": {
                                                        "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/String"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "name": {
                                                        "description": " Human readable name of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "segment": {
                                                        "description": " The user segment, for apps that divide users in user segments.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry_user": {
                                                        "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "username": {
                                                        "description": " Username of the user.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "version": {
                                "description": " Version",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
                "definitions": {
                    "Addr": {"type": "string"},
                    "AppContext": {
                        "description": " Application information.\n\n App context describes the application. As opposed to the runtime, this is the actual\n application that was running and carries metadata about the current session.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "app_build": {
                                        "description": " Internal build ID as it appears on the platform.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "app_identifier": {
                                        "description": " Version-independent application identifier, often a dotted bundle ID.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "app_memory": {
                                        "description": " Amount of memory used by the application in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "app_name": {
                                        "description": " Application name as it appears on the platform.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "app_start_time": {
                                        "description": " Start time of the app.\n\n Formatted UTC timestamp when the user started the application.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "app_version": {
                                        "description": " Application version as it appears on the platform.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "build_type": {
                                        "description": " String identifying the kind of build. For example, `testflight`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "device_app_hash": {
                                        "description": " Application-specific device identifier.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "in_foreground": {
                                        "description": " A flag indicating whether the app is in foreground or not. An app is in foreground when it's visible to the user.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "view_names": {
                                        "description": " The names of the currently visible views.",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {"type": ["string", "null"]},
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "AppleDebugImage": {
                        "description": " Legacy apple debug images (MachO).\n\n This was also used for non-apple platforms with similar debug setups.",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": [
                                    "image_addr",
                                    "image_size",
                                    "name",
                                    "uuid",
                                ],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cpu_subtype": {
                                        "description": " MachO CPU subtype identifier.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "cpu_type": {
                                        "description": " MachO CPU type identifier.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_addr": {
                                        "description": " Starting memory address of the image (required).",
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).",
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.",
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "name": {
                                        "description": " Path and name of the debug image (required).",
                                        "type": ["string", "null"],
                                    },
                                    "uuid": {
                                        "description": " The unique UUID of the image.",
                                        "type": ["string", "null"],
                                        "format": "uuid",
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "Breadcrumb": {
                        "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "category": {
                                        "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "data": {
                                        "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                    "event_id": {
                                        "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Wrapper around a UUID with slightly different formatting.",
                                                "anyOf": [
                                                    {"type": "string", "format": "uuid"}
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "level": {
                                        "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": "Severity level of an event or breadcrumb.",
                                                "type": "string",
                                                "enum": [
                                                    "debug",
                                                    "info",
                                                    "warning",
                                                    "error",
                                                    "fatal",
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "message": {
                                        "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "timestamp": {
                                        "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                                "anyOf": [
                                                    {
                                                        "type": "number",
                                                        "format": "double",
                                                    },
                                                    {"type": "string"},
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "type": {
                                        "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "BrowserContext": {
                        "description": " Web browser information.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": " Display name of the browser application.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version": {
                                        "description": " Version string of the browser.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "CError": {
                        "description": " POSIX signal with optional extended data.\n\n Error codes set by Linux system calls and some library functions as specified in ISO C99,\n POSIX.1-2001, and POSIX.1-2008. See\n [`errno(3)`](https://man7.org/linux/man-pages/man3/errno.3.html) for more information.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": " Optional name of the errno constant.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "number": {
                                        "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "int64",
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "ClientSdkInfo": {
                        "description": " The SDK Interface describes the Sentry SDK and its configuration used to capture and transmit an event.",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["name", "version"],
                                "properties": {
                                    "features": {
                                        "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {"type": ["string", "null"]},
                                    },
                                    "integrations": {
                                        "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {"type": ["string", "null"]},
                                    },
                                    "name": {
                                        "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                        "type": ["string", "null"],
                                    },
                                    "packages": {
                                        "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": " An installed and loaded package as part of the Sentry SDK.",
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "name": {
                                                                    "description": " Name of the package.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "version": {
                                                                    "description": " Version of the package.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    "version": {
                                        "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "ClientSdkPackage": {
                        "description": " An installed and loaded package as part of the Sentry SDK.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": " Name of the package.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version": {
                                        "description": " Version of the package.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "CloudResourceContext": {
                        "description": ' Cloud Resource Context.\n\n This context describes the cloud resource the event originated from.\n\n Example:\n\n ```json\n "cloud_resource": {\n     "cloud.account.id": "499517922981",\n     "cloud.provider": "aws",\n     "cloud.platform": "aws_ec2",\n     "cloud.region": "us-east-1",\n     "cloud.vavailability_zone": "us-east-1e",\n     "host.id": "i-07d3301208fe0a55a",\n     "host.type": "t2.large"\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "cloud.account.id": {
                                        "description": " The cloud account ID the resource is assigned to.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cloud.availability_zone": {
                                        "description": " The zone where the resource is running.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cloud.platform": {
                                        "description": " The cloud platform in use.\n The prefix of the service SHOULD match the one specified in cloud_provider.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cloud.provider": {
                                        "description": " Name of the cloud provider.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cloud.region": {
                                        "description": " The geographical region the resource is running.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "host.id": {
                                        "description": " Unique host ID.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "host.type": {
                                        "description": " Machine type of the host.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "CodeId": {"type": "string"},
                    "Context": {
                        "description": " A context describes environment info (e.g. device, os or browser).",
                        "anyOf": [
                            {
                                "description": " Device information.\n\n Device context describes the device that caused the event. This is most appropriate for mobile\n applications.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "arch": {
                                                "description": " Native cpu architecture of the device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "battery_level": {
                                                "description": " Current battery level in %.\n\n If the device has a battery, this can be a floating point value defining the battery level\n (in the range 0-100).",
                                                "default": None,
                                                "type": ["number", "null"],
                                                "format": "double",
                                            },
                                            "battery_status": {
                                                "description": " Status of the device's battery.\n\n For example, `Unknown`, `Charging`, `Discharging`, `NotCharging`, `Full`.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "boot_time": {
                                                "description": " Indicator when the device was booted.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "brand": {
                                                "description": " Brand of the device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "charging": {
                                                "description": " Whether the device was charging or not.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "cpu_description": {
                                                "description": " CPU description.\n\n For example, Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "device_type": {
                                                "description": " Kind of device the application is running on.\n\n For example, `Unknown`, `Handheld`, `Console`, `Desktop`.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "device_unique_identifier": {
                                                "description": " Unique device identifier.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "external_free_storage": {
                                                "description": " Free size of the attached external storage in bytes (eg: android SDK card).",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "external_storage_size": {
                                                "description": " Total size of the attached external storage in bytes (eg: android SDK card).",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "family": {
                                                "description": " Family of the device model.\n\n This is usually the common part of model names across generations. For instance, `iPhone`\n would be a reasonable family, so would be `Samsung Galaxy`.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "free_memory": {
                                                "description": " How much memory is still available in bytes.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "free_storage": {
                                                "description": " How much storage is free in bytes.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "locale": {
                                                "description": " ISO 639-1 code of the locale the device is set to.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "low_memory": {
                                                "description": " Whether the device was low on memory.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "manufacturer": {
                                                "description": " Manufacturer of the device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "memory_size": {
                                                "description": " Total memory available in bytes.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "model": {
                                                "description": " Device model.\n\n This, for example, can be `Samsung Galaxy S3`.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "model_id": {
                                                "description": " Device model (internal identifier).\n\n An internal hardware revision to identify the device exactly.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "name": {
                                                "description": " Name of the device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "online": {
                                                "description": " Whether the device was online or not.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "orientation": {
                                                "description": " Current screen orientation.\n\n This can be a string `portrait` or `landscape` to define the orientation of a device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "processor_count": {
                                                "description": ' Number of "logical processors".\n\n For example, 8.',
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "processor_frequency": {
                                                "description": " Processor frequency in MHz.\n\n Note that the actual CPU frequency might vary depending on current load and\n power conditions, especially on low-powered devices like phones and laptops.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "screen_density": {
                                                "description": " Device screen density.",
                                                "default": None,
                                                "type": ["number", "null"],
                                                "format": "double",
                                            },
                                            "screen_dpi": {
                                                "description": " Screen density as dots-per-inch.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "screen_height_pixels": {
                                                "description": " Height of the screen in pixels.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "screen_resolution": {
                                                "description": " Device screen resolution.\n\n (e.g.: 800x600, 3040x1444)",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "screen_width_pixels": {
                                                "description": " Width of the screen in pixels.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "simulator": {
                                                "description": " Simulator/prod indicator.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "storage_size": {
                                                "description": " Total storage size of the device in bytes.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "supports_accelerometer": {
                                                "description": " Whether the accelerometer is available on the device.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "supports_audio": {
                                                "description": " Whether audio is available on the device.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "supports_gyroscope": {
                                                "description": " Whether the gyroscope is available on the device.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "supports_location_service": {
                                                "description": " Whether location support is available on the device.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "supports_vibration": {
                                                "description": " Whether vibration is available on the device.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "timezone": {
                                                "description": " Timezone of the device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "usable_memory": {
                                                "description": " How much memory is usable for the app in bytes.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "uuid": {
                                                "description": " UUID of the device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                                "format": "uuid",
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Operating system information.\n\n OS context describes the operating system on which the event was created. In web contexts, this\n is the operating system of the browser (generally pulled from the User-Agent string).",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "build": {
                                                "description": " Internal build number of the operating system.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "distribution": {
                                                "description": " Meta-data for the Linux Distribution.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/LinuxDistribution"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "kernel_version": {
                                                "description": " Current kernel version.\n\n This is typically the entire output of the `uname` syscall.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "name": {
                                                "description": " Name of the operating system.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "raw_description": {
                                                "description": " Unprocessed operating system info.\n\n An unprocessed description string obtained by the operating system. For some well-known\n runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are\n not explicitly given.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "rooted": {
                                                "description": " Indicator if the OS is rooted (mobile mostly).",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "version": {
                                                "description": " Version of the operating system.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Runtime information.\n\n Runtime context describes a runtime in more detail. Typically, this context is present in\n `contexts` multiple times if multiple runtimes are involved (for instance, if you have a\n JavaScript application running on top of JVM).",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "build": {
                                                "description": " Application build string, if it is separate from the version.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "name": {
                                                "description": " Runtime name.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "raw_description": {
                                                "description": " Unprocessed runtime info.\n\n An unprocessed description string obtained by the runtime. For some well-known runtimes,\n Sentry will attempt to parse `name` and `version` from this string, if they are not\n explicitly given.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "version": {
                                                "description": " Runtime version string.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Application information.\n\n App context describes the application. As opposed to the runtime, this is the actual\n application that was running and carries metadata about the current session.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "app_build": {
                                                "description": " Internal build ID as it appears on the platform.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "app_identifier": {
                                                "description": " Version-independent application identifier, often a dotted bundle ID.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "app_memory": {
                                                "description": " Amount of memory used by the application in bytes.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "app_name": {
                                                "description": " Application name as it appears on the platform.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "app_start_time": {
                                                "description": " Start time of the app.\n\n Formatted UTC timestamp when the user started the application.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "app_version": {
                                                "description": " Application version as it appears on the platform.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "build_type": {
                                                "description": " String identifying the kind of build. For example, `testflight`.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "device_app_hash": {
                                                "description": " Application-specific device identifier.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "in_foreground": {
                                                "description": " A flag indicating whether the app is in foreground or not. An app is in foreground when it's visible to the user.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "view_names": {
                                                "description": " The names of the currently visible views.",
                                                "default": None,
                                                "type": ["array", "null"],
                                                "items": {"type": ["string", "null"]},
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Web browser information.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "name": {
                                                "description": " Display name of the browser application.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "version": {
                                                "description": " Version string of the browser.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' GPU information.\n\n Example:\n\n ```json\n "gpu": {\n   "name": "AMD Radeon Pro 560",\n   "vendor_name": "Apple",\n   "memory_size": 4096,\n   "api_type": "Metal",\n   "multi_threaded_rendering": true,\n   "version": "Metal",\n   "npot_support": "Full"\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "api_type": {
                                                "description": ' The device low-level API type.\n\n Examples: `"Apple Metal"` or `"Direct3D11"`',
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "graphics_shader_level": {
                                                "description": ' Approximate "shader capability" level of the graphics device.\n\n For Example: Shader Model 2.0, OpenGL ES 3.0, Metal / OpenGL ES 3.1, 27 (unknown)',
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "id": {
                                                "description": " The PCI identifier of the graphics device.",
                                                "default": None,
                                            },
                                            "max_texture_size": {
                                                "description": " Largest size of a texture that is supported by the graphics hardware.\n\n For Example: 16384",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "memory_size": {
                                                "description": " The total GPU memory available in Megabytes.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "multi_threaded_rendering": {
                                                "description": " Whether the GPU has multi-threaded rendering or not.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "name": {
                                                "description": " The name of the graphics device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "npot_support": {
                                                "description": " The Non-Power-Of-Two support.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "supports_compute_shaders": {
                                                "description": " Whether compute shaders are available on the device.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "supports_draw_call_instancing": {
                                                "description": " Whether GPU draw call instancing is supported.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "supports_geometry_shaders": {
                                                "description": " Whether geometry shaders are available on the device.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "supports_ray_tracing": {
                                                "description": " Whether ray tracing is available on the device.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "vendor_id": {
                                                "description": " The PCI vendor identifier of the graphics device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "vendor_name": {
                                                "description": " The vendor name as reported by the graphics device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "version": {
                                                "description": " The Version of the graphics device.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Trace context",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["span_id", "trace_id"],
                                        "properties": {
                                            "client_sample_rate": {
                                                "description": " The client-side sample rate as reported in the envelope's `trace.sample_rate` header.\n\n The server takes this field from envelope headers and writes it back into the event. Clients\n should not ever send this value.",
                                                "default": None,
                                                "type": ["number", "null"],
                                                "format": "double",
                                            },
                                            "data": {
                                                "description": " Data of the trace's root span.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/SpanData"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "exclusive_time": {
                                                "description": " The amount of time in milliseconds spent in this transaction span,\n excluding its immediate child spans.",
                                                "default": None,
                                                "type": ["number", "null"],
                                                "format": "double",
                                            },
                                            "op": {
                                                "description": " Span type (see `OperationType` docs).",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "origin": {
                                                "description": " The origin of the trace indicates what created the trace (see [OriginType] docs).",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "parent_span_id": {
                                                "description": " The ID of the span enclosing this span.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/SpanId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "sampled": {
                                                "description": " Track whether the trace connected to this event has been sampled entirely.\n\n This flag only applies to events with [`Error`] type that have an associated dynamic sampling context.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                            "span_id": {
                                                "description": " The ID of the span.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/SpanId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "status": {
                                                "description": " Whether the trace failed or succeeded. Currently only used to indicate status of individual\n transactions.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/SpanStatus"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "trace_id": {
                                                "description": " The trace ID.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/TraceId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Profile context",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "profile_id": {
                                                "description": " The profile ID.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/EventId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "profiler_id": {
                                                "description": " The profiler ID.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/EventId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Replay context.\n\n The replay context contains the replay_id of the session replay if the event\n occurred during a replay. The replay_id is added onto the dynamic sampling context\n on the javascript SDK which propagates it through the trace. In relay, we take\n this value from the DSC and create a context which contains only the replay_id\n This context is never set on the client for events, only on relay.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "replay_id": {
                                                "description": " The replay ID.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/EventId"},
                                                    {"type": "null"},
                                                ],
                                            }
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Feedback context.\n\n This contexts contains user feedback specific attributes.\n We don't PII scrub contact_email as that is provided by the user.\n TODO(jferg): rename to FeedbackContext once old UserReport logic is deprecated.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "contact_email": {
                                                "description": " an email optionally provided by the user, which can be different from user.email",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "message": {
                                                "description": " The feedback message which contains what the user has to say.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Monitor information.",
                                "anyOf": [
                                    {"type": "object", "additionalProperties": True}
                                ],
                            },
                            {
                                "description": " Response interface that contains information on a HTTP response related to the event.\n\n The data variable should only contain the response body. It can either be\n a dictionary (for standard HTTP responses) or a raw response body.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "body_size": {
                                                "description": " HTTP response body size.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "cookies": {
                                                "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Cookies"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "data": {
                                                "description": " Response data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                                "default": None,
                                            },
                                            "headers": {
                                                "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Headers"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "inferred_content_type": {
                                                "description": " The inferred content type of the response payload.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "status_code": {
                                                "description": " HTTP status code.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " OpenTelemetry Context\n\n If an event has this context, it was generated from an OpenTelemetry signal (trace, metric, log).",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "attributes": {
                                                "description": " Attributes of the OpenTelemetry span that maps to a Sentry event.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/trace/v1/trace.proto#L174-L186>",
                                                "default": None,
                                                "type": ["object", "null"],
                                                "additionalProperties": True,
                                            },
                                            "resource": {
                                                "description": " Information about an OpenTelemetry resource.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/resource/v1/resource.proto>",
                                                "default": None,
                                                "type": ["object", "null"],
                                                "additionalProperties": True,
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' Cloud Resource Context.\n\n This context describes the cloud resource the event originated from.\n\n Example:\n\n ```json\n "cloud_resource": {\n     "cloud.account.id": "499517922981",\n     "cloud.provider": "aws",\n     "cloud.platform": "aws_ec2",\n     "cloud.region": "us-east-1",\n     "cloud.vavailability_zone": "us-east-1e",\n     "host.id": "i-07d3301208fe0a55a",\n     "host.type": "t2.large"\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "cloud.account.id": {
                                                "description": " The cloud account ID the resource is assigned to.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "cloud.availability_zone": {
                                                "description": " The zone where the resource is running.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "cloud.platform": {
                                                "description": " The cloud platform in use.\n The prefix of the service SHOULD match the one specified in cloud_provider.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "cloud.provider": {
                                                "description": " Name of the cloud provider.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "cloud.region": {
                                                "description": " The geographical region the resource is running.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "host.id": {
                                                "description": " Unique host ID.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "host.type": {
                                                "description": " Machine type of the host.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Contains NEL report information.\n\n Network Error Logging (NEL) is a browser feature that allows reporting of failed network\n requests from the client side. See the following resources for more information:\n\n - [W3C Editor's Draft](https://w3c.github.io/network-error-logging/)\n - [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Network_Error_Logging)",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "elapsed_time": {
                                                "description": " The number of milliseconds between the start of the resource fetch and when it was aborted by the user agent.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "error_type": {
                                                "description": ' If request failed, the type of its network error. If request succeeded, "ok".',
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "phase": {
                                                "description": ' If request failed, the phase of its network error. If request succeeded, "application".',
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NetworkReportPhases"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "sampling_fraction": {
                                                "description": " The sampling rate.",
                                                "default": None,
                                                "type": ["number", "null"],
                                                "format": "double",
                                            },
                                            "server_ip": {
                                                "description": " Server IP where the requests was sent to.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/String"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Performance Score context.\n\n The performance score context contains the version of the\n profile used to calculate the performance score.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "properties": {
                                            "score_profile_version": {
                                                "description": " The performance score profile version.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            }
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {"type": "object", "additionalProperties": True},
                        ],
                    },
                    "ContextInner": {
                        "anyOf": [
                            {
                                "description": " A context describes environment info (e.g. device, os or browser).",
                                "anyOf": [
                                    {"$ref": "#/definitions/DeviceContext"},
                                    {"$ref": "#/definitions/OsContext"},
                                    {"$ref": "#/definitions/RuntimeContext"},
                                    {"$ref": "#/definitions/AppContext"},
                                    {"$ref": "#/definitions/BrowserContext"},
                                    {"$ref": "#/definitions/GpuContext"},
                                    {"$ref": "#/definitions/TraceContext"},
                                    {"$ref": "#/definitions/ProfileContext"},
                                    {"$ref": "#/definitions/ReplayContext"},
                                    {"$ref": "#/definitions/UserReportV2Context"},
                                    {"$ref": "#/definitions/MonitorContext"},
                                    {"$ref": "#/definitions/ResponseContext"},
                                    {"$ref": "#/definitions/OtelContext"},
                                    {"$ref": "#/definitions/CloudResourceContext"},
                                    {"$ref": "#/definitions/NelContext"},
                                    {"$ref": "#/definitions/PerformanceScoreContext"},
                                    {"type": "object", "additionalProperties": True},
                                ],
                            }
                        ]
                    },
                    "Contexts": {
                        "description": " The Contexts interface provides additional context data. Typically, this is data related to the\n current user and the environment. For example, the device or application version. Its canonical\n name is `contexts`.\n\n The `contexts` type can be used to define arbitrary contextual data on the event. It accepts an\n object of key/value pairs. The key is the “alias” of the context and can be freely chosen.\n However, as per policy, it should match the type of the context unless there are two values for\n a type. You can omit `type` if the key name is the type.\n\n Unknown data for the contexts is rendered as a key/value list.\n\n For more details about sending additional data with your event, see the [full documentation on\n Additional Data](https://docs.sentry.io/enriching-error-data/additional-data/).",
                        "anyOf": [
                            {
                                "type": "object",
                                "additionalProperties": {
                                    "anyOf": [
                                        {"anyOf": [{"$ref": "#/definitions/Context"}]},
                                        {"type": "null"},
                                    ]
                                },
                            }
                        ],
                    },
                    "Cookies": {
                        "description": " A map holding cookies.",
                        "anyOf": [
                            {
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "additionalProperties": {
                                            "type": ["string", "null"]
                                        },
                                    },
                                    {
                                        "type": "array",
                                        "items": {
                                            "type": ["array", "null"],
                                            "items": [
                                                {"type": ["string", "null"]},
                                                {"type": ["string", "null"]},
                                            ],
                                            "maxItems": 2,
                                            "minItems": 2,
                                        },
                                    },
                                ]
                            }
                        ],
                    },
                    "DebugId": {"type": "string"},
                    "DebugImage": {
                        "description": " A debug information file (debug image).",
                        "anyOf": [
                            {
                                "description": " Legacy apple debug images (MachO).\n\n This was also used for non-apple platforms with similar debug setups.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": [
                                            "image_addr",
                                            "image_size",
                                            "name",
                                            "uuid",
                                        ],
                                        "properties": {
                                            "arch": {
                                                "description": " CPU architecture target.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "cpu_subtype": {
                                                "description": " MachO CPU subtype identifier.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "cpu_type": {
                                                "description": " MachO CPU type identifier.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "image_addr": {
                                                "description": " Starting memory address of the image (required).",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_size": {
                                                "description": " Size of the image in bytes (required).",
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "image_vmaddr": {
                                                "description": " Loading address in virtual memory.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "name": {
                                                "description": " Path and name of the debug image (required).",
                                                "type": ["string", "null"],
                                            },
                                            "uuid": {
                                                "description": " The unique UUID of the image.",
                                                "type": ["string", "null"],
                                                "format": "uuid",
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["code_file", "debug_id"],
                                        "properties": {
                                            "arch": {
                                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "code_file": {
                                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "code_id": {
                                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/CodeId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_checksum": {
                                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "debug_file": {
                                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_id": {
                                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/DebugId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_addr": {
                                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_size": {
                                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "image_vmaddr": {
                                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["code_file", "debug_id"],
                                        "properties": {
                                            "arch": {
                                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "code_file": {
                                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "code_id": {
                                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/CodeId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_checksum": {
                                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "debug_file": {
                                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_id": {
                                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/DebugId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_addr": {
                                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_size": {
                                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "image_vmaddr": {
                                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["code_file", "debug_id"],
                                        "properties": {
                                            "arch": {
                                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "code_file": {
                                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "code_id": {
                                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/CodeId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_checksum": {
                                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "debug_file": {
                                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_id": {
                                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/DebugId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_addr": {
                                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_size": {
                                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "image_vmaddr": {
                                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["code_file", "debug_id"],
                                        "properties": {
                                            "arch": {
                                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "code_file": {
                                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "code_id": {
                                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/CodeId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_checksum": {
                                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "debug_file": {
                                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_id": {
                                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/DebugId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_addr": {
                                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_size": {
                                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "image_vmaddr": {
                                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["code_file", "debug_id"],
                                        "properties": {
                                            "arch": {
                                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "code_file": {
                                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "code_id": {
                                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/CodeId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_checksum": {
                                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "debug_file": {
                                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_id": {
                                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/DebugId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_addr": {
                                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_size": {
                                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "image_vmaddr": {
                                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": " Proguard mapping file.\n\n Proguard images refer to `mapping.txt` files generated when Proguard obfuscates function names. The Java SDK integrations assign this file a unique identifier, which has to be included in the list of images.",
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["uuid"],
                                        "properties": {
                                            "uuid": {
                                                "description": " UUID computed from the file contents, assigned by the Java SDK.",
                                                "type": ["string", "null"],
                                                "format": "uuid",
                                            }
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["code_file", "debug_id"],
                                        "properties": {
                                            "arch": {
                                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "code_file": {
                                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "code_id": {
                                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/CodeId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_checksum": {
                                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "debug_file": {
                                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/NativeImagePath"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "debug_id": {
                                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/DebugId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_addr": {
                                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                            "image_size": {
                                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                                "default": None,
                                                "type": ["integer", "null"],
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            "image_vmaddr": {
                                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                                "default": None,
                                                "anyOf": [
                                                    {"$ref": "#/definitions/Addr"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' A debug image pointing to a source map.\n\n Examples:\n\n ```json\n {\n   "type": "sourcemap",\n   "code_file": "https://example.com/static/js/main.min.js",\n   "debug_id": "395835f4-03e0-4436-80d3-136f0749a893"\n }\n ```\n\n **Note:** Stack frames and the correlating entries in the debug image here\n for `code_file`/`abs_path` are not PII stripped as they need to line up\n perfectly for source map processing.',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["code_file", "debug_id"],
                                        "properties": {
                                            "code_file": {
                                                "description": " Path and name of the image file as URL. (required).\n\n The absolute path to the minified JavaScript file.  This helps to correlate the file to the stack trace.",
                                                "type": ["string", "null"],
                                            },
                                            "debug_file": {
                                                "description": " Path and name of the associated source map.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "debug_id": {
                                                "description": " Unique debug identifier of the source map.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/DebugId"},
                                                    {"type": "null"},
                                                ],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {
                                "description": ' A debug image consisting of source files for a JVM based language.\n\n Examples:\n\n ```json\n {\n   "type": "jvm",\n   "debug_id": "395835f4-03e0-4436-80d3-136f0749a893"\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["debug_id"],
                                        "properties": {
                                            "debug_id": {
                                                "description": " Unique debug identifier of the bundle.",
                                                "anyOf": [
                                                    {"$ref": "#/definitions/DebugId"},
                                                    {"type": "null"},
                                                ],
                                            }
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            },
                            {"type": "object", "additionalProperties": True},
                        ],
                    },
                    "DebugMeta": {
                        "description": ' Debugging and processing meta information.\n\n The debug meta interface carries debug information for processing errors and crash reports.\n Sentry amends the information in this interface.\n\n Example (look at field types to see more detail):\n\n ```json\n {\n   "debug_meta": {\n     "images": [],\n     "sdk_info": {\n       "sdk_name": "iOS",\n       "version_major": 10,\n       "version_minor": 3,\n       "version_patchlevel": 0\n     }\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "images": {
                                        "description": " List of debug information files (debug images).",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": " A debug information file (debug image).",
                                                    "anyOf": [
                                                        {
                                                            "$ref": "#/definitions/AppleDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/NativeDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/NativeDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/NativeDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/NativeDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/NativeDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/ProguardDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/NativeDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/SourceMapDebugImage"
                                                        },
                                                        {
                                                            "$ref": "#/definitions/JvmDebugImage"
                                                        },
                                                        {
                                                            "type": "object",
                                                            "additionalProperties": True,
                                                        },
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    "sdk_info": {
                                        "description": " Information about the system SDK (e.g. iOS SDK).",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Holds information about the system SDK.\n\n This is relevant for iOS and other platforms that have a system\n SDK.  Not to be confused with the client SDK.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "sdk_name": {
                                                                "description": " The internal name of the SDK.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "version_major": {
                                                                "description": " The major version of the SDK as integer or 0.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "version_minor": {
                                                                "description": " The minor version of the SDK as integer or 0.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "version_patchlevel": {
                                                                "description": " The patch version of the SDK as integer or 0.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "DeviceContext": {
                        "description": " Device information.\n\n Device context describes the device that caused the event. This is most appropriate for mobile\n applications.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "arch": {
                                        "description": " Native cpu architecture of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "battery_level": {
                                        "description": " Current battery level in %.\n\n If the device has a battery, this can be a floating point value defining the battery level\n (in the range 0-100).",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "battery_status": {
                                        "description": " Status of the device's battery.\n\n For example, `Unknown`, `Charging`, `Discharging`, `NotCharging`, `Full`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "boot_time": {
                                        "description": " Indicator when the device was booted.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "brand": {
                                        "description": " Brand of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "charging": {
                                        "description": " Whether the device was charging or not.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "cpu_description": {
                                        "description": " CPU description.\n\n For example, Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "device_type": {
                                        "description": " Kind of device the application is running on.\n\n For example, `Unknown`, `Handheld`, `Console`, `Desktop`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "device_unique_identifier": {
                                        "description": " Unique device identifier.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "external_free_storage": {
                                        "description": " Free size of the attached external storage in bytes (eg: android SDK card).",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "external_storage_size": {
                                        "description": " Total size of the attached external storage in bytes (eg: android SDK card).",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "family": {
                                        "description": " Family of the device model.\n\n This is usually the common part of model names across generations. For instance, `iPhone`\n would be a reasonable family, so would be `Samsung Galaxy`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "free_memory": {
                                        "description": " How much memory is still available in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "free_storage": {
                                        "description": " How much storage is free in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "locale": {
                                        "description": " ISO 639-1 code of the locale the device is set to.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "low_memory": {
                                        "description": " Whether the device was low on memory.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "manufacturer": {
                                        "description": " Manufacturer of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "memory_size": {
                                        "description": " Total memory available in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "model": {
                                        "description": " Device model.\n\n This, for example, can be `Samsung Galaxy S3`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "model_id": {
                                        "description": " Device model (internal identifier).\n\n An internal hardware revision to identify the device exactly.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "name": {
                                        "description": " Name of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "online": {
                                        "description": " Whether the device was online or not.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "orientation": {
                                        "description": " Current screen orientation.\n\n This can be a string `portrait` or `landscape` to define the orientation of a device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "processor_count": {
                                        "description": ' Number of "logical processors".\n\n For example, 8.',
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "processor_frequency": {
                                        "description": " Processor frequency in MHz.\n\n Note that the actual CPU frequency might vary depending on current load and\n power conditions, especially on low-powered devices like phones and laptops.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "screen_density": {
                                        "description": " Device screen density.",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "screen_dpi": {
                                        "description": " Screen density as dots-per-inch.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "screen_height_pixels": {
                                        "description": " Height of the screen in pixels.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "screen_resolution": {
                                        "description": " Device screen resolution.\n\n (e.g.: 800x600, 3040x1444)",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "screen_width_pixels": {
                                        "description": " Width of the screen in pixels.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "simulator": {
                                        "description": " Simulator/prod indicator.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "storage_size": {
                                        "description": " Total storage size of the device in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "supports_accelerometer": {
                                        "description": " Whether the accelerometer is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_audio": {
                                        "description": " Whether audio is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_gyroscope": {
                                        "description": " Whether the gyroscope is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_location_service": {
                                        "description": " Whether location support is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_vibration": {
                                        "description": " Whether vibration is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "timezone": {
                                        "description": " Timezone of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "usable_memory": {
                                        "description": " How much memory is usable for the app in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "uuid": {
                                        "description": " UUID of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                        "format": "uuid",
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "EventId": {
                        "description": " Wrapper around a UUID with slightly different formatting.",
                        "anyOf": [{"type": "string", "format": "uuid"}],
                    },
                    "EventProcessingError": {
                        "description": " An event processing error.",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["type"],
                                "properties": {
                                    "name": {
                                        "description": " Affected key or deep path.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "type": {
                                        "description": " The error kind.",
                                        "type": ["string", "null"],
                                    },
                                    "value": {
                                        "description": " The original value causing this error.",
                                        "default": None,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "EventType": {
                        "description": "The type of an event.\n\nThe event type determines how Sentry handles the event and has an impact on processing, rate limiting, and quotas. There are three fundamental classes of event types:\n\n- **Error monitoring events** (`default`, `error`): Processed and grouped into unique issues based on their exception stack traces and error messages. - **Security events** (`csp`, `hpkp`, `expectct`, `expectstaple`): Derived from Browser security violation reports and grouped into unique issues based on the endpoint and violation. SDKs do not send such events. - **Transaction events** (`transaction`): Contain operation spans and collected into traces for performance monitoring.",
                        "type": "string",
                        "enum": [
                            "error",
                            "csp",
                            "hpkp",
                            "expectct",
                            "expectstaple",
                            "nel",
                            "transaction",
                            "userreportv2",
                            "default",
                        ],
                    },
                    "Exception": {
                        "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "mechanism": {
                                        "description": " Mechanism by which this exception was generated and handled.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " The mechanism by which an exception was generated and handled.\n\n The exception mechanism is an optional field residing in the [exception](#typedef-Exception).\n It carries additional information about the way the exception was created on the target system.\n This includes general exception values obtained from the operating system or runtime APIs, as\n well as mechanism-specific values.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "required": ["type"],
                                                        "properties": {
                                                            "data": {
                                                                "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                                                "default": None,
                                                                "type": [
                                                                    "object",
                                                                    "null",
                                                                ],
                                                                "additionalProperties": True,
                                                            },
                                                            "description": {
                                                                "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "exception_id": {
                                                                "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "handled": {
                                                                "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "help_link": {
                                                                "description": " Link to online resources describing this error.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "is_exception_group": {
                                                                "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "meta": {
                                                                "description": " Operating system or runtime meta information.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/MechanismMeta"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "parent_id": {
                                                                "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "source": {
                                                                "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "synthetic": {
                                                                "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "type": {
                                                                "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "module": {
                                        "description": " The optional module, or package which the exception type lives in.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "stacktrace": {
                                        "description": " Stack trace containing frames of this exception.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/RawStacktrace"
                                                    }
                                                ]
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "thread_id": {
                                        "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Represents a thread id.",
                                                "anyOf": [
                                                    {
                                                        "type": "integer",
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    {"type": "string"},
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "type": {
                                        "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "value": {
                                        "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": ' A "into-string" type of value. All non-string values are serialized as JSON.',
                                                "anyOf": [{"type": "string"}],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "Fingerprint": {
                        "description": " A fingerprint value.",
                        "anyOf": [{"type": "array", "items": {"type": "string"}}],
                    },
                    "Frame": {
                        "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "abs_path": {
                                        "description": " Absolute path to the source file.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                                "anyOf": [{"type": "string"}],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "addr_mode": {
                                        "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "colno": {
                                        "description": " Column number within the source file, starting at 1.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "context_line": {
                                        "description": " Source code of the current line (`lineno`).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "filename": {
                                        "description": " The source file name (basename only).",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                                "anyOf": [{"type": "string"}],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "function": {
                                        "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "function_id": {
                                        "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "image_addr": {
                                        "description": " (C/C++/Native) Start address of the containing code module (image).",
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "in_app": {
                                        "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "instruction_addr": {
                                        "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "lineno": {
                                        "description": " Line number within the source file, starting at 1.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "lock": {
                                        "description": " A possible lock (java monitor object) held by this frame.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "required": ["type"],
                                                        "properties": {
                                                            "address": {
                                                                "description": " Address of the java monitor object.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "class_name": {
                                                                "description": " Class name of the java monitor object.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "package_name": {
                                                                "description": " Package name of the java monitor object.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "thread_id": {
                                                                "description": " Thread ID that's holding the lock.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/ThreadId"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "type": {
                                                                "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/LockReasonType"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "module": {
                                        "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "package": {
                                        "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "platform": {
                                        "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "post_context": {
                                        "description": " Source code of the lines after `lineno`.",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {"type": ["string", "null"]},
                                    },
                                    "pre_context": {
                                        "description": " Source code leading up to `lineno`.",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {"type": ["string", "null"]},
                                    },
                                    "raw_function": {
                                        "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "stack_start": {
                                        "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "symbol": {
                                        "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "symbol_addr": {
                                        "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "vars": {
                                        "description": " Mapping of local variables and expression names that were available in this frame.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Frame local variables.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": True,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "FrameVars": {
                        "description": " Frame local variables.",
                        "anyOf": [{"type": "object", "additionalProperties": True}],
                    },
                    "Geo": {
                        "description": " Geographical location of the end user or device.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "city": {
                                        "description": " Human readable city name.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "country_code": {
                                        "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "region": {
                                        "description": " Human readable region name or code.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "subdivision": {
                                        "description": " Human readable subdivision name.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "GpuContext": {
                        "description": ' GPU information.\n\n Example:\n\n ```json\n "gpu": {\n   "name": "AMD Radeon Pro 560",\n   "vendor_name": "Apple",\n   "memory_size": 4096,\n   "api_type": "Metal",\n   "multi_threaded_rendering": true,\n   "version": "Metal",\n   "npot_support": "Full"\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "api_type": {
                                        "description": ' The device low-level API type.\n\n Examples: `"Apple Metal"` or `"Direct3D11"`',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "graphics_shader_level": {
                                        "description": ' Approximate "shader capability" level of the graphics device.\n\n For Example: Shader Model 2.0, OpenGL ES 3.0, Metal / OpenGL ES 3.1, 27 (unknown)',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "id": {
                                        "description": " The PCI identifier of the graphics device.",
                                        "default": None,
                                    },
                                    "max_texture_size": {
                                        "description": " Largest size of a texture that is supported by the graphics hardware.\n\n For Example: 16384",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "memory_size": {
                                        "description": " The total GPU memory available in Megabytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "multi_threaded_rendering": {
                                        "description": " Whether the GPU has multi-threaded rendering or not.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "name": {
                                        "description": " The name of the graphics device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "npot_support": {
                                        "description": " The Non-Power-Of-Two support.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "supports_compute_shaders": {
                                        "description": " Whether compute shaders are available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_draw_call_instancing": {
                                        "description": " Whether GPU draw call instancing is supported.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_geometry_shaders": {
                                        "description": " Whether geometry shaders are available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_ray_tracing": {
                                        "description": " Whether ray tracing is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "vendor_id": {
                                        "description": " The PCI vendor identifier of the graphics device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "vendor_name": {
                                        "description": " The vendor name as reported by the graphics device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version": {
                                        "description": " The Version of the graphics device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "HeaderName": {
                        "description": ' A "into-string" type that normalizes header names.',
                        "anyOf": [{"type": "string"}],
                    },
                    "HeaderValue": {
                        "description": ' A "into-string" type that normalizes header values.',
                        "anyOf": [{"type": "string"}],
                    },
                    "Headers": {
                        "description": " A map holding headers.",
                        "anyOf": [
                            {
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "additionalProperties": {
                                            "anyOf": [
                                                {
                                                    "description": ' A "into-string" type that normalizes header values.',
                                                    "anyOf": [{"type": "string"}],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    {
                                        "type": "array",
                                        "items": {
                                            "type": ["array", "null"],
                                            "items": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "description": ' A "into-string" type that normalizes header names.',
                                                            "anyOf": [
                                                                {"type": "string"}
                                                            ],
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                                {
                                                    "anyOf": [
                                                        {
                                                            "description": ' A "into-string" type that normalizes header values.',
                                                            "anyOf": [
                                                                {"type": "string"}
                                                            ],
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                            ],
                                            "maxItems": 2,
                                            "minItems": 2,
                                        },
                                    },
                                ]
                            }
                        ],
                    },
                    "InstructionAddrAdjustment": {
                        "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                        "type": "string",
                        "enum": ["auto", "all_but_first", "all", "none"],
                    },
                    "JsonLenientString": {
                        "description": ' A "into-string" type of value. All non-string values are serialized as JSON.',
                        "anyOf": [{"type": "string"}],
                    },
                    "JvmDebugImage": {
                        "description": ' A debug image consisting of source files for a JVM based language.\n\n Examples:\n\n ```json\n {\n   "type": "jvm",\n   "debug_id": "395835f4-03e0-4436-80d3-136f0749a893"\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["debug_id"],
                                "properties": {
                                    "debug_id": {
                                        "description": " Unique debug identifier of the bundle.",
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    }
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "Level": {
                        "description": "Severity level of an event or breadcrumb.",
                        "type": "string",
                        "enum": ["debug", "info", "warning", "error", "fatal"],
                    },
                    "LinuxDistribution": {
                        "description": " Metadata for the Linux Distribution.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": " An index-able name that is stable for each distribution.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "pretty_name": {
                                        "description": " A full rendering of name + version + release name (not available in all distributions).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version": {
                                        "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "LockReason": {
                        "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["type"],
                                "properties": {
                                    "address": {
                                        "description": " Address of the java monitor object.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "class_name": {
                                        "description": " Class name of the java monitor object.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "package_name": {
                                        "description": " Package name of the java monitor object.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "thread_id": {
                                        "description": " Thread ID that's holding the lock.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Represents a thread id.",
                                                "anyOf": [
                                                    {
                                                        "type": "integer",
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    {"type": "string"},
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "type": {
                                        "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                        "anyOf": [
                                            {
                                                "description": "Possible lock types responsible for a thread's blocked state",
                                                "type": "string",
                                                "enum": [
                                                    "locked",
                                                    "waiting",
                                                    "sleeping",
                                                    "blocked",
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "LockReasonType": {
                        "description": "Possible lock types responsible for a thread's blocked state",
                        "type": "string",
                        "enum": ["locked", "waiting", "sleeping", "blocked"],
                    },
                    "LogEntry": {
                        "description": ' A log entry message.\n\n A log message is similar to the `message` attribute on the event itself but\n can additionally hold optional parameters.\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like %s",\n     "params": ["this"]\n   }\n }\n ```\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like {foo}",\n     "params": {"foo": "this"}\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "formatted": {
                                        "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                        "default": None,
                                        "anyOf": [
                                            {"anyOf": [{"type": "string"}]},
                                            {"type": "null"},
                                        ],
                                    },
                                    "message": {
                                        "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                        "default": None,
                                        "anyOf": [
                                            {"anyOf": [{"type": "string"}]},
                                            {"type": "null"},
                                        ],
                                    },
                                    "params": {
                                        "description": " Parameters to be interpolated into the log message. This can be an array of positional\n parameters as well as a mapping of named arguments to their values.",
                                        "default": None,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "MachException": {
                        "description": " Mach exception information.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "description": " The mach exception code.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "exception": {
                                        "description": " The mach exception type.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "int64",
                                    },
                                    "name": {
                                        "description": " Optional name of the mach exception.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "subcode": {
                                        "description": " The mach exception subcode.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "Mechanism": {
                        "description": " The mechanism by which an exception was generated and handled.\n\n The exception mechanism is an optional field residing in the [exception](#typedef-Exception).\n It carries additional information about the way the exception was created on the target system.\n This includes general exception values obtained from the operating system or runtime APIs, as\n well as mechanism-specific values.",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["type"],
                                "properties": {
                                    "data": {
                                        "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                    "description": {
                                        "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "exception_id": {
                                        "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "handled": {
                                        "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "help_link": {
                                        "description": " Link to online resources describing this error.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "is_exception_group": {
                                        "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "meta": {
                                        "description": " Operating system or runtime meta information.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Operating system or runtime meta information to an exception mechanism.\n\n The mechanism metadata usually carries error codes reported by the runtime or operating system,\n along with a platform-dependent interpretation of these codes. SDKs can safely omit code names\n and descriptions for well-known error codes, as it will be filled out by Sentry. For\n proprietary or vendor-specific error codes, adding these values will give additional\n information to the user.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "errno": {
                                                                "description": " Optional ISO C standard error code.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/CError"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "mach_exception": {
                                                                "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/MachException"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "ns_error": {
                                                                "description": " An NSError on Apple systems comprising code and signal.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/NsError"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "signal": {
                                                                "description": " Information on the POSIX signal.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/PosixSignal"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "parent_id": {
                                        "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "source": {
                                        "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "synthetic": {
                                        "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "type": {
                                        "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "MechanismMeta": {
                        "description": " Operating system or runtime meta information to an exception mechanism.\n\n The mechanism metadata usually carries error codes reported by the runtime or operating system,\n along with a platform-dependent interpretation of these codes. SDKs can safely omit code names\n and descriptions for well-known error codes, as it will be filled out by Sentry. For\n proprietary or vendor-specific error codes, adding these values will give additional\n information to the user.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "errno": {
                                        "description": " Optional ISO C standard error code.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " POSIX signal with optional extended data.\n\n Error codes set by Linux system calls and some library functions as specified in ISO C99,\n POSIX.1-2001, and POSIX.1-2008. See\n [`errno(3)`](https://man7.org/linux/man-pages/man3/errno.3.html) for more information.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "name": {
                                                                "description": " Optional name of the errno constant.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "number": {
                                                                "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "int64",
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "mach_exception": {
                                        "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Mach exception information.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "code": {
                                                                "description": " The mach exception code.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "exception": {
                                                                "description": " The mach exception type.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "int64",
                                                            },
                                                            "name": {
                                                                "description": " Optional name of the mach exception.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "subcode": {
                                                                "description": " The mach exception subcode.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "ns_error": {
                                        "description": " An NSError on Apple systems comprising code and signal.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " NSError informaiton.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "code": {
                                                                "description": " The error code.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "int64",
                                                            },
                                                            "domain": {
                                                                "description": " A string containing the error domain.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "signal": {
                                        "description": " Information on the POSIX signal.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " POSIX signal with optional extended data.\n\n On Apple systems, signals also carry a code in addition to the signal number describing the\n signal in more detail. On Linux, this code does not exist.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "code": {
                                                                "description": " An optional signal code present on Apple systems.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "int64",
                                                            },
                                                            "code_name": {
                                                                "description": " Optional name of the errno constant.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "name": {
                                                                "description": " Optional name of the errno constant.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "number": {
                                                                "description": " The POSIX signal number.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "int64",
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "Message": {"anyOf": [{"type": "string"}]},
                    "MonitorContext": {
                        "description": " Monitor information.",
                        "anyOf": [{"type": "object", "additionalProperties": True}],
                    },
                    "NativeDebugImage": {
                        "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "code_file": {
                                        "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                        "anyOf": [
                                            {
                                                "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                                "anyOf": [{"type": "string"}],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "code_id": {
                                        "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "debug_checksum": {
                                        "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                                "anyOf": [{"type": "string"}],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "image_addr": {
                                        "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "NativeImagePath": {
                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                        "anyOf": [{"type": "string"}],
                    },
                    "NelContext": {
                        "description": " Contains NEL report information.\n\n Network Error Logging (NEL) is a browser feature that allows reporting of failed network\n requests from the client side. See the following resources for more information:\n\n - [W3C Editor's Draft](https://w3c.github.io/network-error-logging/)\n - [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Network_Error_Logging)",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "elapsed_time": {
                                        "description": " The number of milliseconds between the start of the resource fetch and when it was aborted by the user agent.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "error_type": {
                                        "description": ' If request failed, the type of its network error. If request succeeded, "ok".',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "phase": {
                                        "description": ' If request failed, the phase of its network error. If request succeeded, "application".',
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Describes which phase the error occurred in.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": False,
                                                    },
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": False,
                                                    },
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": False,
                                                    },
                                                    {"type": "string"},
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "sampling_fraction": {
                                        "description": " The sampling rate.",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "server_ip": {
                                        "description": " Server IP where the requests was sent to.",
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "NetworkReportPhases": {
                        "description": " Describes which phase the error occurred in.",
                        "anyOf": [
                            {"type": "object", "additionalProperties": False},
                            {"type": "object", "additionalProperties": False},
                            {"type": "object", "additionalProperties": False},
                            {"type": "string"},
                        ],
                    },
                    "NsError": {
                        "description": " NSError informaiton.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "description": " The error code.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "int64",
                                    },
                                    "domain": {
                                        "description": " A string containing the error domain.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "OsContext": {
                        "description": " Operating system information.\n\n OS context describes the operating system on which the event was created. In web contexts, this\n is the operating system of the browser (generally pulled from the User-Agent string).",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "description": " Internal build number of the operating system.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "distribution": {
                                        "description": " Meta-data for the Linux Distribution.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Metadata for the Linux Distribution.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "name": {
                                                                "description": " An index-able name that is stable for each distribution.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "pretty_name": {
                                                                "description": " A full rendering of name + version + release name (not available in all distributions).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "version": {
                                                                "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "kernel_version": {
                                        "description": " Current kernel version.\n\n This is typically the entire output of the `uname` syscall.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "name": {
                                        "description": " Name of the operating system.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "raw_description": {
                                        "description": " Unprocessed operating system info.\n\n An unprocessed description string obtained by the operating system. For some well-known\n runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are\n not explicitly given.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "rooted": {
                                        "description": " Indicator if the OS is rooted (mobile mostly).",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "version": {
                                        "description": " Version of the operating system.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "OtelContext": {
                        "description": " OpenTelemetry Context\n\n If an event has this context, it was generated from an OpenTelemetry signal (trace, metric, log).",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "attributes": {
                                        "description": " Attributes of the OpenTelemetry span that maps to a Sentry event.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/trace/v1/trace.proto#L174-L186>",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                    "resource": {
                                        "description": " Information about an OpenTelemetry resource.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/resource/v1/resource.proto>",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "PerformanceScoreContext": {
                        "description": " Performance Score context.\n\n The performance score context contains the version of the\n profile used to calculate the performance score.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "score_profile_version": {
                                        "description": " The performance score profile version.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    }
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "PosixSignal": {
                        "description": " POSIX signal with optional extended data.\n\n On Apple systems, signals also carry a code in addition to the signal number describing the\n signal in more detail. On Linux, this code does not exist.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "code": {
                                        "description": " An optional signal code present on Apple systems.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "int64",
                                    },
                                    "code_name": {
                                        "description": " Optional name of the errno constant.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "name": {
                                        "description": " Optional name of the errno constant.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "number": {
                                        "description": " The POSIX signal number.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "int64",
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "ProfileContext": {
                        "description": " Profile context",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "profile_id": {
                                        "description": " The profile ID.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Wrapper around a UUID with slightly different formatting.",
                                                "anyOf": [
                                                    {"type": "string", "format": "uuid"}
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "profiler_id": {
                                        "description": " The profiler ID.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Wrapper around a UUID with slightly different formatting.",
                                                "anyOf": [
                                                    {"type": "string", "format": "uuid"}
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "ProguardDebugImage": {
                        "description": " Proguard mapping file.\n\n Proguard images refer to `mapping.txt` files generated when Proguard obfuscates function names. The Java SDK integrations assign this file a unique identifier, which has to be included in the list of images.",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["uuid"],
                                "properties": {
                                    "uuid": {
                                        "description": " UUID computed from the file contents, assigned by the Java SDK.",
                                        "type": ["string", "null"],
                                        "format": "uuid",
                                    }
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "RawStacktrace": {
                        "description": ' A stack trace of a single thread.\n\n A stack trace contains a list of frames, each with various bits (most optional) describing the\n context of that frame. Frames should be sorted from oldest to newest.\n\n For the given example program written in Python:\n\n ```python\n def foo():\n     my_var = \'foo\'\n     raise ValueError()\n\n def main():\n     foo()\n ```\n\n A minimalistic stack trace for the above program in the correct order:\n\n ```json\n {\n   "frames": [\n     {"function": "main"},\n     {"function": "foo"}\n   ]\n }\n ```\n\n The top frame fully symbolicated with five lines of source context:\n\n ```json\n {\n   "frames": [{\n     "in_app": true,\n     "function": "myfunction",\n     "abs_path": "/real/file/name.py",\n     "filename": "file/name.py",\n     "lineno": 3,\n     "vars": {\n       "my_var": "\'value\'"\n     },\n     "pre_context": [\n       "def foo():",\n       "  my_var = \'foo\'",\n     ],\n     "context_line": "  raise ValueError()",\n     "post_context": [\n       "",\n       "def main():"\n     ],\n   }]\n }\n ```\n\n A minimal native stack trace with register values. Note that the `package` event attribute must\n be "native" for these frames to be symbolicated.\n\n ```json\n {\n   "frames": [\n     {"instruction_addr": "0x7fff5bf3456c"},\n     {"instruction_addr": "0x7fff5bf346c0"},\n   ],\n   "registers": {\n     "rip": "0x00007ff6eef54be2",\n     "rsp": "0x0000003b710cd9e0"\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["frames"],
                                "properties": {
                                    "frames": {
                                        "description": " Required. A non-empty list of stack frames. The list is ordered from caller to callee, or\n oldest to youngest. The last frame is the one creating the exception.",
                                        "type": ["array", "null"],
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "abs_path": {
                                                                    "description": " Absolute path to the source file.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/NativeImagePath"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "addr_mode": {
                                                                    "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "colno": {
                                                                    "description": " Column number within the source file, starting at 1.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "integer",
                                                                        "null",
                                                                    ],
                                                                    "format": "uint64",
                                                                    "minimum": 0.0,
                                                                },
                                                                "context_line": {
                                                                    "description": " Source code of the current line (`lineno`).",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "filename": {
                                                                    "description": " The source file name (basename only).",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/NativeImagePath"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "function": {
                                                                    "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "function_id": {
                                                                    "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Addr"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "image_addr": {
                                                                    "description": " (C/C++/Native) Start address of the containing code module (image).",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Addr"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "in_app": {
                                                                    "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "instruction_addr": {
                                                                    "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Addr"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "lineno": {
                                                                    "description": " Line number within the source file, starting at 1.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "integer",
                                                                        "null",
                                                                    ],
                                                                    "format": "uint64",
                                                                    "minimum": 0.0,
                                                                },
                                                                "lock": {
                                                                    "description": " A possible lock (java monitor object) held by this frame.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/LockReason"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "module": {
                                                                    "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "package": {
                                                                    "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "platform": {
                                                                    "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "post_context": {
                                                                    "description": " Source code of the lines after `lineno`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                },
                                                                "pre_context": {
                                                                    "description": " Source code leading up to `lineno`.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                },
                                                                "raw_function": {
                                                                    "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "stack_start": {
                                                                    "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "boolean",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "symbol": {
                                                                    "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "symbol_addr": {
                                                                    "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Addr"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "vars": {
                                                                    "description": " Mapping of local variables and expression names that were available in this frame.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/FrameVars"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    "instruction_addr_adjustment": {
                                        "description": " Optional. A flag that indicates if, and how, `instruction_addr` values need to be adjusted\n before they are symbolicated.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                                                "type": "string",
                                                "enum": [
                                                    "auto",
                                                    "all_but_first",
                                                    "all",
                                                    "none",
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "lang": {
                                        "description": " The language of the stacktrace.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "registers": {
                                        "description": " Register values of the thread (top frame).\n\n A map of register names and their values. The values should contain the actual register\n values of the thread, thus mapping to the last frame in the list.",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": {
                                            "anyOf": [
                                                {"type": "string"},
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    "snapshot": {
                                        "description": " Indicates that this stack trace is a snapshot triggered by an external signal.\n\n If this field is `false`, then the stack trace points to the code that caused this stack\n trace to be created. This can be the location of a raised exception, as well as an exception\n or signal handler.\n\n If this field is `true`, then the stack trace was captured as part of creating an unrelated\n event. For example, a thread other than the crashing thread, or a stack trace computed as a\n result of an external kill signal.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "RegVal": {"type": "string"},
                    "ReplayContext": {
                        "description": " Replay context.\n\n The replay context contains the replay_id of the session replay if the event\n occurred during a replay. The replay_id is added onto the dynamic sampling context\n on the javascript SDK which propagates it through the trace. In relay, we take\n this value from the DSC and create a context which contains only the replay_id\n This context is never set on the client for events, only on relay.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "replay_id": {
                                        "description": " The replay ID.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Wrapper around a UUID with slightly different formatting.",
                                                "anyOf": [
                                                    {"type": "string", "format": "uuid"}
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    }
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "Request": {
                        "description": ' Http request information.\n\n The Request interface contains information on a HTTP request related to the event. In client\n SDKs, this can be an outgoing request, or the request that rendered the current web page. On\n server SDKs, this could be the incoming web request that is being handled.\n\n The data variable should only contain the request body (not the query string). It can either be\n a dictionary (for standard HTTP requests) or a raw request body.\n\n ### Ordered Maps\n\n In the Request interface, several attributes can either be declared as string, object, or list\n of tuples. Sentry attempts to parse structured information from the string representation in\n such cases.\n\n Sometimes, keys can be declared multiple times, or the order of elements matters. In such\n cases, use the tuple representation over a plain object.\n\n Example of request headers as object:\n\n ```json\n {\n   "content-type": "application/json",\n   "accept": "application/json, application/xml"\n }\n ```\n\n Example of the same headers as list of tuples:\n\n ```json\n [\n   ["content-type", "application/json"],\n   ["accept", "application/json"],\n   ["accept", "application/xml"]\n ]\n ```\n\n Example of a fully populated request object:\n\n ```json\n {\n   "request": {\n     "method": "POST",\n     "url": "http://absolute.uri/foo",\n     "query_string": "query=foobar&page=2",\n     "data": {\n       "foo": "bar"\n     },\n     "cookies": "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;",\n     "headers": {\n       "content-type": "text/html"\n     },\n     "env": {\n       "REMOTE_ADDR": "192.168.0.1"\n     }\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "api_target": {
                                        "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "body_size": {
                                        "description": " HTTP request body size.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "cookies": {
                                        "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " A map holding cookies.",
                                                "anyOf": [
                                                    {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "additionalProperties": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": [
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                    ],
                                                                    "maxItems": 2,
                                                                    "minItems": 2,
                                                                },
                                                            },
                                                        ]
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "data": {
                                        "description": " Request data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                        "default": None,
                                    },
                                    "env": {
                                        "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                    "fragment": {
                                        "description": " The fragment of the request URI.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "headers": {
                                        "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " A map holding headers.",
                                                "anyOf": [
                                                    {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "additionalProperties": {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderValue"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                            },
                                                            {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": [
                                                                        {
                                                                            "anyOf": [
                                                                                {
                                                                                    "$ref": "#/definitions/HeaderName"
                                                                                },
                                                                                {
                                                                                    "type": "null"
                                                                                },
                                                                            ]
                                                                        },
                                                                        {
                                                                            "anyOf": [
                                                                                {
                                                                                    "$ref": "#/definitions/HeaderValue"
                                                                                },
                                                                                {
                                                                                    "type": "null"
                                                                                },
                                                                            ]
                                                                        },
                                                                    ],
                                                                    "maxItems": 2,
                                                                    "minItems": 2,
                                                                },
                                                            },
                                                        ]
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "inferred_content_type": {
                                        "description": " The inferred content type of the request payload.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "method": {
                                        "description": " HTTP request method.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "protocol": {
                                        "description": " HTTP protocol.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "query_string": {
                                        "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {"type": "string"},
                                                    {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "additionalProperties": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": [
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                    ],
                                                                    "maxItems": 2,
                                                                    "minItems": 2,
                                                                },
                                                            },
                                                        ]
                                                    },
                                                ]
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "url": {
                                        "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "ResponseContext": {
                        "description": " Response interface that contains information on a HTTP response related to the event.\n\n The data variable should only contain the response body. It can either be\n a dictionary (for standard HTTP responses) or a raw response body.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "body_size": {
                                        "description": " HTTP response body size.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "cookies": {
                                        "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " A map holding cookies.",
                                                "anyOf": [
                                                    {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "additionalProperties": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": [
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                    ],
                                                                    "maxItems": 2,
                                                                    "minItems": 2,
                                                                },
                                                            },
                                                        ]
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "data": {
                                        "description": " Response data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                        "default": None,
                                    },
                                    "headers": {
                                        "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " A map holding headers.",
                                                "anyOf": [
                                                    {
                                                        "anyOf": [
                                                            {
                                                                "type": "object",
                                                                "additionalProperties": {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderValue"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                            },
                                                            {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": [
                                                                        {
                                                                            "anyOf": [
                                                                                {
                                                                                    "$ref": "#/definitions/HeaderName"
                                                                                },
                                                                                {
                                                                                    "type": "null"
                                                                                },
                                                                            ]
                                                                        },
                                                                        {
                                                                            "anyOf": [
                                                                                {
                                                                                    "$ref": "#/definitions/HeaderValue"
                                                                                },
                                                                                {
                                                                                    "type": "null"
                                                                                },
                                                                            ]
                                                                        },
                                                                    ],
                                                                    "maxItems": 2,
                                                                    "minItems": 2,
                                                                },
                                                            },
                                                        ]
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "inferred_content_type": {
                                        "description": " The inferred content type of the response payload.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "status_code": {
                                        "description": " HTTP status code.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "Route": {
                        "description": " The route in the application, set by React Native SDK.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": " The name of the route.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "params": {
                                        "description": " Parameters assigned to this route.",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "RuntimeContext": {
                        "description": " Runtime information.\n\n Runtime context describes a runtime in more detail. Typically, this context is present in\n `contexts` multiple times if multiple runtimes are involved (for instance, if you have a\n JavaScript application running on top of JVM).",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "description": " Application build string, if it is separate from the version.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "name": {
                                        "description": " Runtime name.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "raw_description": {
                                        "description": " Unprocessed runtime info.\n\n An unprocessed description string obtained by the runtime. For some well-known runtimes,\n Sentry will attempt to parse `name` and `version` from this string, if they are not\n explicitly given.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version": {
                                        "description": " Runtime version string.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "SourceMapDebugImage": {
                        "description": ' A debug image pointing to a source map.\n\n Examples:\n\n ```json\n {\n   "type": "sourcemap",\n   "code_file": "https://example.com/static/js/main.min.js",\n   "debug_id": "395835f4-03e0-4436-80d3-136f0749a893"\n }\n ```\n\n **Note:** Stack frames and the correlating entries in the debug image here\n for `code_file`/`abs_path` are not PII stripped as they need to line up\n perfectly for source map processing.',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "code_file": {
                                        "description": " Path and name of the image file as URL. (required).\n\n The absolute path to the minified JavaScript file.  This helps to correlate the file to the stack trace.",
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the associated source map.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the source map.",
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "SpanData": {
                        "description": " Arbitrary additional data on a span.\n\n Besides arbitrary user data, this type also contains SDK-provided fields used by the\n product (see <https://develop.sentry.dev/sdk/performance/span-data-conventions/>).",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "ai.completion_tokens.used": {
                                        "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                        "default": None,
                                    },
                                    "ai.input_messages": {
                                        "description": " The input messages to an AI model call",
                                        "default": None,
                                    },
                                    "ai.model_id": {
                                        "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                        "default": None,
                                    },
                                    "ai.pipeline.name": {
                                        "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                        "default": None,
                                    },
                                    "ai.prompt_tokens.used": {
                                        "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                        "default": None,
                                    },
                                    "ai.responses": {
                                        "description": " The responses to an AI model call",
                                        "default": None,
                                    },
                                    "ai.total_tokens.used": {
                                        "description": " The total tokens that were used by an LLM call",
                                        "default": None,
                                    },
                                    "app_start_type": {
                                        "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                        "default": None,
                                    },
                                    "browser.name": {
                                        "description": " The client's browser name.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cache.hit": {
                                        "description": " Whether cache was hit or miss on a read operation.",
                                        "default": None,
                                    },
                                    "cache.item_size": {
                                        "description": " The size of the cache item.",
                                        "default": None,
                                    },
                                    "cache.key": {
                                        "description": " The name of the cache key.",
                                        "default": None,
                                    },
                                    "client.address": {
                                        "description": " The client's IP address.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "code.filepath": {
                                        "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                        "default": None,
                                    },
                                    "code.function": {
                                        "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                        "default": None,
                                    },
                                    "code.lineno": {
                                        "description": " The line number in `code.filepath` best representing the operation.",
                                        "default": None,
                                    },
                                    "code.namespace": {
                                        "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                        "default": None,
                                    },
                                    "db.operation": {
                                        "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                        "default": None,
                                    },
                                    "db.system": {
                                        "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                        "default": None,
                                    },
                                    "frames.delay": {"default": None},
                                    "http.decoded_response_content_length": {
                                        "description": " The decoded body size of the response (in bytes).",
                                        "default": None,
                                    },
                                    "http.request_method": {
                                        "description": " The HTTP method used.",
                                        "default": None,
                                    },
                                    "http.response.status_code": {
                                        "description": " The status HTTP response.",
                                        "default": None,
                                    },
                                    "http.response_content_length": {
                                        "description": " The encoded body size of the response (in bytes).",
                                        "default": None,
                                    },
                                    "http.response_transfer_size": {
                                        "description": " The transfer size of the response (in bytes).",
                                        "default": None,
                                    },
                                    "messaging.destination.name": {
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "messaging.message.body.size": {
                                        "description": " Message Body Size",
                                        "default": None,
                                    },
                                    "messaging.message.id": {
                                        "description": " Message ID",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "messaging.message.receive.latency": {
                                        "description": " Message Receive Latency",
                                        "default": None,
                                    },
                                    "messaging.message.retry.count": {
                                        "description": " Message Retry Count",
                                        "default": None,
                                    },
                                    "previousRoute": {
                                        "description": " The previous route in the application\n\n Set by React Native SDK.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " The route in the application, set by React Native SDK.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "name": {
                                                                "description": " The name of the route.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "params": {
                                                                "description": " Parameters assigned to this route.",
                                                                "default": None,
                                                                "type": [
                                                                    "object",
                                                                    "null",
                                                                ],
                                                                "additionalProperties": True,
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "resource.render_blocking_status": {
                                        "description": " The render blocking status of the resource.",
                                        "default": None,
                                    },
                                    "route": {
                                        "description": " The current route in the application.\n\n Set by React Native SDK.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " The route in the application, set by React Native SDK.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "name": {
                                                                "description": " The name of the route.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "params": {
                                                                "description": " Parameters assigned to this route.",
                                                                "default": None,
                                                                "type": [
                                                                    "object",
                                                                    "null",
                                                                ],
                                                                "additionalProperties": True,
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "sentry.environment": {
                                        "description": " The sentry environment.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "sentry.frames.frozen": {
                                        "description": " Frozen Frames",
                                        "default": None,
                                    },
                                    "sentry.frames.slow": {
                                        "description": " Slow Frames",
                                        "default": None,
                                    },
                                    "sentry.frames.total": {
                                        "description": " Total Frames",
                                        "default": None,
                                    },
                                    "sentry.release": {
                                        "description": " The release version of the project.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "sentry.replay.id": {
                                        "description": " Replay ID",
                                        "default": None,
                                    },
                                    "sentry.sdk.name": {
                                        "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "sentry.sdk.version": {
                                        "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "sentry.segment.name": {
                                        "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "server.address": {
                                        "description": " Name of the web server host.",
                                        "default": None,
                                    },
                                    "thread.id": {
                                        "description": " ID of thread from where the span originated.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Represents a thread id.",
                                                "anyOf": [
                                                    {
                                                        "type": "integer",
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    {"type": "string"},
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "thread.name": {
                                        "description": " Label identifying a thread from where the span originated.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "ui.component_name": {
                                        "description": " Name of the UI component (e.g. React).",
                                        "default": None,
                                    },
                                    "url.full": {
                                        "description": " Absolute URL of a network resource.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "url.scheme": {
                                        "description": ' The URL scheme, e.g. `"https"`.',
                                        "default": None,
                                    },
                                    "user": {
                                        "description": " User Display",
                                        "default": None,
                                    },
                                    "user_agent.original": {
                                        "description": " Value of the HTTP User-Agent header sent by the client.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "SpanId": {
                        "description": " A 16-character hex string as described in the W3C trace context spec.",
                        "anyOf": [{"type": "string"}],
                    },
                    "SpanStatus": {
                        "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                        "type": "string",
                        "enum": [
                            "ok",
                            "cancelled",
                            "unknown",
                            "invalid_argument",
                            "deadline_exceeded",
                            "not_found",
                            "already_exists",
                            "permission_denied",
                            "resource_exhausted",
                            "failed_precondition",
                            "aborted",
                            "out_of_range",
                            "unimplemented",
                            "internal_error",
                            "unavailable",
                            "data_loss",
                            "unauthenticated",
                        ],
                    },
                    "Stacktrace": {
                        "anyOf": [
                            {
                                "description": ' A stack trace of a single thread.\n\n A stack trace contains a list of frames, each with various bits (most optional) describing the\n context of that frame. Frames should be sorted from oldest to newest.\n\n For the given example program written in Python:\n\n ```python\n def foo():\n     my_var = \'foo\'\n     raise ValueError()\n\n def main():\n     foo()\n ```\n\n A minimalistic stack trace for the above program in the correct order:\n\n ```json\n {\n   "frames": [\n     {"function": "main"},\n     {"function": "foo"}\n   ]\n }\n ```\n\n The top frame fully symbolicated with five lines of source context:\n\n ```json\n {\n   "frames": [{\n     "in_app": true,\n     "function": "myfunction",\n     "abs_path": "/real/file/name.py",\n     "filename": "file/name.py",\n     "lineno": 3,\n     "vars": {\n       "my_var": "\'value\'"\n     },\n     "pre_context": [\n       "def foo():",\n       "  my_var = \'foo\'",\n     ],\n     "context_line": "  raise ValueError()",\n     "post_context": [\n       "",\n       "def main():"\n     ],\n   }]\n }\n ```\n\n A minimal native stack trace with register values. Note that the `package` event attribute must\n be "native" for these frames to be symbolicated.\n\n ```json\n {\n   "frames": [\n     {"instruction_addr": "0x7fff5bf3456c"},\n     {"instruction_addr": "0x7fff5bf346c0"},\n   ],\n   "registers": {\n     "rip": "0x00007ff6eef54be2",\n     "rsp": "0x0000003b710cd9e0"\n   }\n }\n ```',
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "required": ["frames"],
                                        "properties": {
                                            "frames": {
                                                "description": " Required. A non-empty list of stack frames. The list is ordered from caller to callee, or\n oldest to youngest. The last frame is the one creating the exception.",
                                                "type": ["array", "null"],
                                                "items": {
                                                    "anyOf": [
                                                        {"$ref": "#/definitions/Frame"},
                                                        {"type": "null"},
                                                    ]
                                                },
                                            },
                                            "instruction_addr_adjustment": {
                                                "description": " Optional. A flag that indicates if, and how, `instruction_addr` values need to be adjusted\n before they are symbolicated.",
                                                "default": None,
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/InstructionAddrAdjustment"
                                                    },
                                                    {"type": "null"},
                                                ],
                                            },
                                            "lang": {
                                                "description": " The language of the stacktrace.",
                                                "default": None,
                                                "type": ["string", "null"],
                                            },
                                            "registers": {
                                                "description": " Register values of the thread (top frame).\n\n A map of register names and their values. The values should contain the actual register\n values of the thread, thus mapping to the last frame in the list.",
                                                "default": None,
                                                "type": ["object", "null"],
                                                "additionalProperties": {
                                                    "anyOf": [
                                                        {
                                                            "$ref": "#/definitions/RegVal"
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                            },
                                            "snapshot": {
                                                "description": " Indicates that this stack trace is a snapshot triggered by an external signal.\n\n If this field is `false`, then the stack trace points to the code that caused this stack\n trace to be created. This can be the location of a raised exception, as well as an exception\n or signal handler.\n\n If this field is `true`, then the stack trace was captured as part of creating an unrelated\n event. For example, a thread other than the crashing thread, or a stack trace computed as a\n result of an external kill signal.",
                                                "default": None,
                                                "type": ["boolean", "null"],
                                            },
                                        },
                                        "additionalProperties": False,
                                    }
                                ],
                            }
                        ]
                    },
                    "String": {"type": "string"},
                    "SystemSdkInfo": {
                        "description": " Holds information about the system SDK.\n\n This is relevant for iOS and other platforms that have a system\n SDK.  Not to be confused with the client SDK.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "sdk_name": {
                                        "description": " The internal name of the SDK.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version_major": {
                                        "description": " The major version of the SDK as integer or 0.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "version_minor": {
                                        "description": " The minor version of the SDK as integer or 0.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "version_patchlevel": {
                                        "description": " The patch version of the SDK as integer or 0.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "TagEntry": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": [
                                    {"type": ["string", "null"]},
                                    {"type": ["string", "null"]},
                                ],
                                "maxItems": 2,
                                "minItems": 2,
                            }
                        ]
                    },
                    "Tags": {
                        "description": " Manual key/value tag pairs.",
                        "anyOf": [
                            {
                                "anyOf": [
                                    {
                                        "type": "object",
                                        "additionalProperties": {
                                            "type": ["string", "null"]
                                        },
                                    },
                                    {
                                        "type": "array",
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        }
                                                    ]
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                ]
                            }
                        ],
                    },
                    "Thread": {
                        "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "crashed": {
                                        "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "current": {
                                        "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "held_locks": {
                                        "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": {
                                            "anyOf": [
                                                {
                                                    "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "required": ["type"],
                                                            "properties": {
                                                                "address": {
                                                                    "description": " Address of the java monitor object.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "class_name": {
                                                                    "description": " Class name of the java monitor object.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "package_name": {
                                                                    "description": " Package name of the java monitor object.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "thread_id": {
                                                                    "description": " Thread ID that's holding the lock.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/LockReasonType"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    "id": {
                                        "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Represents a thread id.",
                                                "anyOf": [
                                                    {
                                                        "type": "integer",
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    {"type": "string"},
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "main": {
                                        "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "name": {
                                        "description": " Display name of this thread.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "stacktrace": {
                                        "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/RawStacktrace"
                                                    }
                                                ]
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "state": {
                                        "description": " Thread state at the time of the crash.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "ThreadId": {
                        "description": " Represents a thread id.",
                        "anyOf": [
                            {"type": "integer", "format": "uint64", "minimum": 0.0},
                            {"type": "string"},
                        ],
                    },
                    "Timestamp": {
                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                        "anyOf": [
                            {"type": "number", "format": "double"},
                            {"type": "string"},
                        ],
                    },
                    "TraceContext": {
                        "description": " Trace context",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["span_id", "trace_id"],
                                "properties": {
                                    "client_sample_rate": {
                                        "description": " The client-side sample rate as reported in the envelope's `trace.sample_rate` header.\n\n The server takes this field from envelope headers and writes it back into the event. Clients\n should not ever send this value.",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "data": {
                                        "description": " Data of the trace's root span.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Arbitrary additional data on a span.\n\n Besides arbitrary user data, this type also contains SDK-provided fields used by the\n product (see <https://develop.sentry.dev/sdk/performance/span-data-conventions/>).",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "ai.completion_tokens.used": {
                                                                "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                                                "default": None,
                                                            },
                                                            "ai.input_messages": {
                                                                "description": " The input messages to an AI model call",
                                                                "default": None,
                                                            },
                                                            "ai.model_id": {
                                                                "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                                                "default": None,
                                                            },
                                                            "ai.pipeline.name": {
                                                                "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                                                "default": None,
                                                            },
                                                            "ai.prompt_tokens.used": {
                                                                "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                                                "default": None,
                                                            },
                                                            "ai.responses": {
                                                                "description": " The responses to an AI model call",
                                                                "default": None,
                                                            },
                                                            "ai.total_tokens.used": {
                                                                "description": " The total tokens that were used by an LLM call",
                                                                "default": None,
                                                            },
                                                            "app_start_type": {
                                                                "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                                                "default": None,
                                                            },
                                                            "browser.name": {
                                                                "description": " The client's browser name.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "cache.hit": {
                                                                "description": " Whether cache was hit or miss on a read operation.",
                                                                "default": None,
                                                            },
                                                            "cache.item_size": {
                                                                "description": " The size of the cache item.",
                                                                "default": None,
                                                            },
                                                            "cache.key": {
                                                                "description": " The name of the cache key.",
                                                                "default": None,
                                                            },
                                                            "client.address": {
                                                                "description": " The client's IP address.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "code.filepath": {
                                                                "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                                                "default": None,
                                                            },
                                                            "code.function": {
                                                                "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                                                "default": None,
                                                            },
                                                            "code.lineno": {
                                                                "description": " The line number in `code.filepath` best representing the operation.",
                                                                "default": None,
                                                            },
                                                            "code.namespace": {
                                                                "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                                                "default": None,
                                                            },
                                                            "db.operation": {
                                                                "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                                                "default": None,
                                                            },
                                                            "db.system": {
                                                                "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                                                "default": None,
                                                            },
                                                            "frames.delay": {
                                                                "default": None
                                                            },
                                                            "http.decoded_response_content_length": {
                                                                "description": " The decoded body size of the response (in bytes).",
                                                                "default": None,
                                                            },
                                                            "http.request_method": {
                                                                "description": " The HTTP method used.",
                                                                "default": None,
                                                            },
                                                            "http.response.status_code": {
                                                                "description": " The status HTTP response.",
                                                                "default": None,
                                                            },
                                                            "http.response_content_length": {
                                                                "description": " The encoded body size of the response (in bytes).",
                                                                "default": None,
                                                            },
                                                            "http.response_transfer_size": {
                                                                "description": " The transfer size of the response (in bytes).",
                                                                "default": None,
                                                            },
                                                            "messaging.destination.name": {
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "messaging.message.body.size": {
                                                                "description": " Message Body Size",
                                                                "default": None,
                                                            },
                                                            "messaging.message.id": {
                                                                "description": " Message ID",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "messaging.message.receive.latency": {
                                                                "description": " Message Receive Latency",
                                                                "default": None,
                                                            },
                                                            "messaging.message.retry.count": {
                                                                "description": " Message Retry Count",
                                                                "default": None,
                                                            },
                                                            "previousRoute": {
                                                                "description": " The previous route in the application\n\n Set by React Native SDK.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Route"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "resource.render_blocking_status": {
                                                                "description": " The render blocking status of the resource.",
                                                                "default": None,
                                                            },
                                                            "route": {
                                                                "description": " The current route in the application.\n\n Set by React Native SDK.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Route"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "sentry.environment": {
                                                                "description": " The sentry environment.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "sentry.frames.frozen": {
                                                                "description": " Frozen Frames",
                                                                "default": None,
                                                            },
                                                            "sentry.frames.slow": {
                                                                "description": " Slow Frames",
                                                                "default": None,
                                                            },
                                                            "sentry.frames.total": {
                                                                "description": " Total Frames",
                                                                "default": None,
                                                            },
                                                            "sentry.release": {
                                                                "description": " The release version of the project.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "sentry.replay.id": {
                                                                "description": " Replay ID",
                                                                "default": None,
                                                            },
                                                            "sentry.sdk.name": {
                                                                "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "sentry.sdk.version": {
                                                                "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "sentry.segment.name": {
                                                                "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "server.address": {
                                                                "description": " Name of the web server host.",
                                                                "default": None,
                                                            },
                                                            "thread.id": {
                                                                "description": " ID of thread from where the span originated.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/ThreadId"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "thread.name": {
                                                                "description": " Label identifying a thread from where the span originated.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "ui.component_name": {
                                                                "description": " Name of the UI component (e.g. React).",
                                                                "default": None,
                                                            },
                                                            "url.full": {
                                                                "description": " Absolute URL of a network resource.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "url.scheme": {
                                                                "description": ' The URL scheme, e.g. `"https"`.',
                                                                "default": None,
                                                            },
                                                            "user": {
                                                                "description": " User Display",
                                                                "default": None,
                                                            },
                                                            "user_agent.original": {
                                                                "description": " Value of the HTTP User-Agent header sent by the client.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "exclusive_time": {
                                        "description": " The amount of time in milliseconds spent in this transaction span,\n excluding its immediate child spans.",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "op": {
                                        "description": " Span type (see `OperationType` docs).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "origin": {
                                        "description": " The origin of the trace indicates what created the trace (see [OriginType] docs).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "parent_span_id": {
                                        "description": " The ID of the span enclosing this span.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " A 16-character hex string as described in the W3C trace context spec.",
                                                "anyOf": [{"type": "string"}],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "sampled": {
                                        "description": " Track whether the trace connected to this event has been sampled entirely.\n\n This flag only applies to events with [`Error`] type that have an associated dynamic sampling context.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "span_id": {
                                        "description": " The ID of the span.",
                                        "anyOf": [
                                            {
                                                "description": " A 16-character hex string as described in the W3C trace context spec.",
                                                "anyOf": [{"type": "string"}],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "status": {
                                        "description": " Whether the trace failed or succeeded. Currently only used to indicate status of individual\n transactions.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                                                "type": "string",
                                                "enum": [
                                                    "ok",
                                                    "cancelled",
                                                    "unknown",
                                                    "invalid_argument",
                                                    "deadline_exceeded",
                                                    "not_found",
                                                    "already_exists",
                                                    "permission_denied",
                                                    "resource_exhausted",
                                                    "failed_precondition",
                                                    "aborted",
                                                    "out_of_range",
                                                    "unimplemented",
                                                    "internal_error",
                                                    "unavailable",
                                                    "data_loss",
                                                    "unauthenticated",
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "trace_id": {
                                        "description": " The trace ID.",
                                        "anyOf": [
                                            {
                                                "description": " A 32-character hex string as described in the W3C trace context spec.",
                                                "anyOf": [{"type": "string"}],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "TraceId": {
                        "description": " A 32-character hex string as described in the W3C trace context spec.",
                        "anyOf": [{"type": "string"}],
                    },
                    "TransactionInfo": {
                        "description": " Additional information about the name of the transaction.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "changes": {
                                        "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {
                                            "anyOf": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "properties": {
                                                                "propagations": {
                                                                    "description": " The number of propagations from the start of the transaction to this change.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "integer",
                                                                        "null",
                                                                    ],
                                                                    "format": "uint64",
                                                                    "minimum": 0.0,
                                                                },
                                                                "source": {
                                                                    "description": " Describes how the previous transaction name was determined.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/TransactionSource"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "timestamp": {
                                                                    "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/Timestamp"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ]
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    "original": {
                                        "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "propagations": {
                                        "description": " The total number of propagations during the transaction.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "source": {
                                        "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": "Describes how the name of the transaction was determined.",
                                                "type": "string",
                                                "enum": [
                                                    "custom",
                                                    "url",
                                                    "route",
                                                    "view",
                                                    "component",
                                                    "sanitized",
                                                    "task",
                                                    "unknown",
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "TransactionNameChange": {
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "propagations": {
                                        "description": " The number of propagations from the start of the transaction to this change.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "source": {
                                        "description": " Describes how the previous transaction name was determined.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": "Describes how the name of the transaction was determined.",
                                                "type": "string",
                                                "enum": [
                                                    "custom",
                                                    "url",
                                                    "route",
                                                    "view",
                                                    "component",
                                                    "sanitized",
                                                    "task",
                                                    "unknown",
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "timestamp": {
                                        "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                                "anyOf": [
                                                    {
                                                        "type": "number",
                                                        "format": "double",
                                                    },
                                                    {"type": "string"},
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ]
                    },
                    "TransactionSource": {
                        "description": "Describes how the name of the transaction was determined.",
                        "type": "string",
                        "enum": [
                            "custom",
                            "url",
                            "route",
                            "view",
                            "component",
                            "sanitized",
                            "task",
                            "unknown",
                        ],
                    },
                    "User": {
                        "description": ' Information about the user who triggered an event.\n\n ```json\n {\n   "user": {\n     "id": "unique_id",\n     "username": "my_user",\n     "email": "foo@example.com",\n     "ip_address": "127.0.0.1",\n     "subscription": "basic"\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                    "email": {
                                        "description": " Email address of the user.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "geo": {
                                        "description": " Approximate geographical location of the end user or device.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "description": " Geographical location of the end user or device.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "city": {
                                                                "description": " Human readable city name.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "country_code": {
                                                                "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "region": {
                                                                "description": " Human readable region name or code.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "subdivision": {
                                                                "description": " Human readable subdivision name.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "id": {
                                        "description": " Unique identifier of the user.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "ip_address": {
                                        "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                        "default": None,
                                        "anyOf": [{"type": "string"}, {"type": "null"}],
                                    },
                                    "name": {
                                        "description": " Human readable name of the user.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "segment": {
                                        "description": " The user segment, for apps that divide users in user segments.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "sentry_user": {
                                        "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "username": {
                                        "description": " Username of the user.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    "UserReportV2Context": {
                        "description": " Feedback context.\n\n This contexts contains user feedback specific attributes.\n We don't PII scrub contact_email as that is provided by the user.\n TODO(jferg): rename to FeedbackContext once old UserReport logic is deprecated.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "contact_email": {
                                        "description": " an email optionally provided by the user, which can be different from user.email",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "message": {
                                        "description": " The feedback message which contains what the user has to say.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                },
            },
            rule="anyOf",
        )
    return data


def validate___definitions_user(data, custom_formats={}, name_prefix=None):
    data_any_of_count21 = 0
    if not data_any_of_count21:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "data": {
                                "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "email": {
                                "description": " Email address of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "geo": {
                                "description": " Approximate geographical location of the end user or device.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Geographical location of the end user or device.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "city": {
                                                        "description": " Human readable city name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "country_code": {
                                                        "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "region": {
                                                        "description": " Human readable region name or code.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "subdivision": {
                                                        "description": " Human readable subdivision name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "id": {
                                "description": " Unique identifier of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "ip_address": {
                                "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "name": {
                                "description": " Human readable name of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "segment": {
                                "description": " The user segment, for apps that divide users in user segments.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry_user": {
                                "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "username": {
                                "description": " Username of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "data" in data_keys:
                    data_keys.remove("data")
                    data__data = data["data"]
                    if not isinstance(data__data, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".data must be object or null",
                            value=data__data,
                            name="" + (name_prefix or "data") + ".data",
                            definition={
                                "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            rule="type",
                        )
                    data__data_is_dict = isinstance(data__data, dict)
                    if data__data_is_dict:
                        data__data_keys = set(data__data.keys())
                if "email" in data_keys:
                    data_keys.remove("email")
                    data__email = data["email"]
                    if not isinstance(data__email, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".email must be string or null",
                            value=data__email,
                            name="" + (name_prefix or "data") + ".email",
                            definition={
                                "description": " Email address of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "geo" in data_keys:
                    data_keys.remove("geo")
                    data__geo = data["geo"]
                    data__geo_any_of_count22 = 0
                    if not data__geo_any_of_count22:
                        try:
                            validate___definitions_geo(
                                data__geo,
                                custom_formats,
                                (name_prefix or "data") + ".geo",
                            )
                            data__geo_any_of_count22 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__geo_any_of_count22:
                        try:
                            if not isinstance(data__geo, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".geo must be null",
                                    value=data__geo,
                                    name="" + (name_prefix or "data") + ".geo",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__geo_any_of_count22 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__geo_any_of_count22:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".geo cannot be validated by any definition",
                            value=data__geo,
                            name="" + (name_prefix or "data") + ".geo",
                            definition={
                                "description": " Approximate geographical location of the end user or device.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Geographical location of the end user or device.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "city": {
                                                        "description": " Human readable city name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "country_code": {
                                                        "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "region": {
                                                        "description": " Human readable region name or code.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "subdivision": {
                                                        "description": " Human readable subdivision name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "id" in data_keys:
                    data_keys.remove("id")
                    data__id = data["id"]
                    if not isinstance(data__id, (str, NoneType)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + ".id must be string or null",
                            value=data__id,
                            name="" + (name_prefix or "data") + ".id",
                            definition={
                                "description": " Unique identifier of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "ip_address" in data_keys:
                    data_keys.remove("ip_address")
                    data__ipaddress = data["ip_address"]
                    data__ipaddress_any_of_count23 = 0
                    if not data__ipaddress_any_of_count23:
                        try:
                            validate___definitions_string(
                                data__ipaddress,
                                custom_formats,
                                (name_prefix or "data") + ".ip_address",
                            )
                            data__ipaddress_any_of_count23 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__ipaddress_any_of_count23:
                        try:
                            if not isinstance(data__ipaddress, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".ip_address must be null",
                                    value=data__ipaddress,
                                    name="" + (name_prefix or "data") + ".ip_address",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__ipaddress_any_of_count23 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__ipaddress_any_of_count23:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".ip_address cannot be validated by any definition",
                            value=data__ipaddress,
                            name="" + (name_prefix or "data") + ".ip_address",
                            definition={
                                "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Human readable name of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "segment" in data_keys:
                    data_keys.remove("segment")
                    data__segment = data["segment"]
                    if not isinstance(data__segment, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".segment must be string or null",
                            value=data__segment,
                            name="" + (name_prefix or "data") + ".segment",
                            definition={
                                "description": " The user segment, for apps that divide users in user segments.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "sentry_user" in data_keys:
                    data_keys.remove("sentry_user")
                    data__sentryuser = data["sentry_user"]
                    if not isinstance(data__sentryuser, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sentry_user must be string or null",
                            value=data__sentryuser,
                            name="" + (name_prefix or "data") + ".sentry_user",
                            definition={
                                "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "username" in data_keys:
                    data_keys.remove("username")
                    data__username = data["username"]
                    if not isinstance(data__username, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".username must be string or null",
                            value=data__username,
                            name="" + (name_prefix or "data") + ".username",
                            definition={
                                "description": " Username of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "data": {
                                    "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                                "email": {
                                    "description": " Email address of the user.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "geo": {
                                    "description": " Approximate geographical location of the end user or device.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Geographical location of the end user or device.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "city": {
                                                            "description": " Human readable city name.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "country_code": {
                                                            "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "region": {
                                                            "description": " Human readable region name or code.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "subdivision": {
                                                            "description": " Human readable subdivision name.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "id": {
                                    "description": " Unique identifier of the user.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "ip_address": {
                                    "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "name": {
                                    "description": " Human readable name of the user.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "segment": {
                                    "description": " The user segment, for apps that divide users in user segments.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "sentry_user": {
                                    "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "username": {
                                    "description": " Username of the user.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count21 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count21:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' Information about the user who triggered an event.\n\n ```json\n {\n   "user": {\n     "id": "unique_id",\n     "username": "my_user",\n     "email": "foo@example.com",\n     "ip_address": "127.0.0.1",\n     "subscription": "basic"\n   }\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "data": {
                                "description": " Additional arbitrary fields, as stored in the database (and sometimes as sent by clients).\n All data from `self.other` should end up here after store normalization.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "email": {
                                "description": " Email address of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "geo": {
                                "description": " Approximate geographical location of the end user or device.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Geographical location of the end user or device.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "city": {
                                                        "description": " Human readable city name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "country_code": {
                                                        "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "region": {
                                                        "description": " Human readable region name or code.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "subdivision": {
                                                        "description": " Human readable subdivision name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "id": {
                                "description": " Unique identifier of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "ip_address": {
                                "description": ' Remote IP address of the user. Defaults to "{{auto}}".',
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "name": {
                                "description": " Human readable name of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "segment": {
                                "description": " The user segment, for apps that divide users in user segments.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry_user": {
                                "description": ' The user string representation as handled in Sentry.\n\n This field is computed by concatenating the name of specific fields of the `User`\n struct with their value. For example, if `id` is set, `sentry_user` will be equal to\n `"id:id-of-the-user".',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "username": {
                                "description": " Username of the user.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_string(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={"type": "string"},
            rule="type",
        )
    return data


def validate___definitions_geo(data, custom_formats={}, name_prefix=None):
    data_any_of_count24 = 0
    if not data_any_of_count24:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "city": {
                                "description": " Human readable city name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "country_code": {
                                "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "region": {
                                "description": " Human readable region name or code.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "subdivision": {
                                "description": " Human readable subdivision name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "city" in data_keys:
                    data_keys.remove("city")
                    data__city = data["city"]
                    if not isinstance(data__city, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".city must be string or null",
                            value=data__city,
                            name="" + (name_prefix or "data") + ".city",
                            definition={
                                "description": " Human readable city name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "country_code" in data_keys:
                    data_keys.remove("country_code")
                    data__countrycode = data["country_code"]
                    if not isinstance(data__countrycode, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".country_code must be string or null",
                            value=data__countrycode,
                            name="" + (name_prefix or "data") + ".country_code",
                            definition={
                                "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "region" in data_keys:
                    data_keys.remove("region")
                    data__region = data["region"]
                    if not isinstance(data__region, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".region must be string or null",
                            value=data__region,
                            name="" + (name_prefix or "data") + ".region",
                            definition={
                                "description": " Human readable region name or code.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "subdivision" in data_keys:
                    data_keys.remove("subdivision")
                    data__subdivision = data["subdivision"]
                    if not isinstance(data__subdivision, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".subdivision must be string or null",
                            value=data__subdivision,
                            name="" + (name_prefix or "data") + ".subdivision",
                            definition={
                                "description": " Human readable subdivision name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "city": {
                                    "description": " Human readable city name.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "country_code": {
                                    "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "region": {
                                    "description": " Human readable region name or code.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "subdivision": {
                                    "description": " Human readable subdivision name.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count24 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count24:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Geographical location of the end user or device.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "city": {
                                "description": " Human readable city name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "country_code": {
                                "description": " Two-letter country code (ISO 3166-1 alpha-2).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "region": {
                                "description": " Human readable region name or code.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "subdivision": {
                                "description": " Human readable subdivision name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_eventtype(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "The type of an event.\n\nThe event type determines how Sentry handles the event and has an impact on processing, rate limiting, and quotas. There are three fundamental classes of event types:\n\n- **Error monitoring events** (`default`, `error`): Processed and grouped into unique issues based on their exception stack traces and error messages. - **Security events** (`csp`, `hpkp`, `expectct`, `expectstaple`): Derived from Browser security violation reports and grouped into unique issues based on the endpoint and violation. SDKs do not send such events. - **Transaction events** (`transaction`): Contain operation spans and collected into traces for performance monitoring.",
                "type": "string",
                "enum": [
                    "error",
                    "csp",
                    "hpkp",
                    "expectct",
                    "expectstaple",
                    "nel",
                    "transaction",
                    "userreportv2",
                    "default",
                ],
            },
            rule="type",
        )
    if data not in [
        "error",
        "csp",
        "hpkp",
        "expectct",
        "expectstaple",
        "nel",
        "transaction",
        "userreportv2",
        "default",
    ]:
        raise JsonSchemaValueException(
            ""
            + (name_prefix or "data")
            + " must be one of ['error', 'csp', 'hpkp', 'expectct', 'expectstaple', 'nel', 'transaction', 'userreportv2', 'default']",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "The type of an event.\n\nThe event type determines how Sentry handles the event and has an impact on processing, rate limiting, and quotas. There are three fundamental classes of event types:\n\n- **Error monitoring events** (`default`, `error`): Processed and grouped into unique issues based on their exception stack traces and error messages. - **Security events** (`csp`, `hpkp`, `expectct`, `expectstaple`): Derived from Browser security violation reports and grouped into unique issues based on the endpoint and violation. SDKs do not send such events. - **Transaction events** (`transaction`): Contain operation spans and collected into traces for performance monitoring.",
                "type": "string",
                "enum": [
                    "error",
                    "csp",
                    "hpkp",
                    "expectct",
                    "expectstaple",
                    "nel",
                    "transaction",
                    "userreportv2",
                    "default",
                ],
            },
            rule="enum",
        )
    return data


def validate___definitions_transactioninfo(data, custom_formats={}, name_prefix=None):
    data_any_of_count25 = 0
    if not data_any_of_count25:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "changes": {
                                "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "propagations": {
                                                            "description": " The number of propagations from the start of the transaction to this change.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "source": {
                                                            "description": " Describes how the previous transaction name was determined.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TransactionSource"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "timestamp": {
                                                            "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Timestamp"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ]
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "original": {
                                "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "propagations": {
                                "description": " The total number of propagations during the transaction.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "source": {
                                "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Describes how the name of the transaction was determined.",
                                        "type": "string",
                                        "enum": [
                                            "custom",
                                            "url",
                                            "route",
                                            "view",
                                            "component",
                                            "sanitized",
                                            "task",
                                            "unknown",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "changes" in data_keys:
                    data_keys.remove("changes")
                    data__changes = data["changes"]
                    if not isinstance(data__changes, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".changes must be array or null",
                            value=data__changes,
                            name="" + (name_prefix or "data") + ".changes",
                            definition={
                                "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "propagations": {
                                                            "description": " The number of propagations from the start of the transaction to this change.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "source": {
                                                            "description": " Describes how the previous transaction name was determined.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TransactionSource"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "timestamp": {
                                                            "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Timestamp"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ]
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            rule="type",
                        )
                    data__changes_is_list = isinstance(data__changes, (list, tuple))
                    if data__changes_is_list:
                        data__changes_len = len(data__changes)
                        for data__changes_x, data__changes_item in enumerate(
                            data__changes
                        ):
                            data__changes_item_any_of_count26 = 0
                            if not data__changes_item_any_of_count26:
                                try:
                                    validate___definitions_transactionnamechange(
                                        data__changes_item,
                                        custom_formats,
                                        (name_prefix or "data")
                                        + ".changes[{data__changes_x}]".format(
                                            **locals()
                                        ),
                                    )
                                    data__changes_item_any_of_count26 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__changes_item_any_of_count26:
                                try:
                                    if not isinstance(data__changes_item, (NoneType)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".changes[{data__changes_x}]".format(
                                                **locals()
                                            )
                                            + " must be null",
                                            value=data__changes_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".changes[{data__changes_x}]".format(
                                                **locals()
                                            )
                                            + "",
                                            definition={"type": "null"},
                                            rule="type",
                                        )
                                    data__changes_item_any_of_count26 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__changes_item_any_of_count26:
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".changes[{data__changes_x}]".format(**locals())
                                    + " cannot be validated by any definition",
                                    value=data__changes_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".changes[{data__changes_x}]".format(**locals())
                                    + "",
                                    definition={
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "propagations": {
                                                                "description": " The number of propagations from the start of the transaction to this change.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "source": {
                                                                "description": " Describes how the previous transaction name was determined.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/TransactionSource"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "timestamp": {
                                                                "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Timestamp"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ]
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                    rule="anyOf",
                                )
                if "original" in data_keys:
                    data_keys.remove("original")
                    data__original = data["original"]
                    if not isinstance(data__original, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".original must be string or null",
                            value=data__original,
                            name="" + (name_prefix or "data") + ".original",
                            definition={
                                "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "propagations" in data_keys:
                    data_keys.remove("propagations")
                    data__propagations = data["propagations"]
                    if (
                        not isinstance(data__propagations, (int, NoneType))
                        and not (
                            isinstance(data__propagations, float)
                            and data__propagations.is_integer()
                        )
                        or isinstance(data__propagations, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".propagations must be integer or null",
                            value=data__propagations,
                            name="" + (name_prefix or "data") + ".propagations",
                            definition={
                                "description": " The total number of propagations during the transaction.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__propagations, (int, float, Decimal)):
                        if data__propagations < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".propagations must be bigger than or equal to 0.0",
                                value=data__propagations,
                                name="" + (name_prefix or "data") + ".propagations",
                                definition={
                                    "description": " The total number of propagations during the transaction.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "source" in data_keys:
                    data_keys.remove("source")
                    data__source = data["source"]
                    data__source_any_of_count27 = 0
                    if not data__source_any_of_count27:
                        try:
                            validate___definitions_transactionsource(
                                data__source,
                                custom_formats,
                                (name_prefix or "data") + ".source",
                            )
                            data__source_any_of_count27 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__source_any_of_count27:
                        try:
                            if not isinstance(data__source, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".source must be null",
                                    value=data__source,
                                    name="" + (name_prefix or "data") + ".source",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__source_any_of_count27 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__source_any_of_count27:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".source cannot be validated by any definition",
                            value=data__source,
                            name="" + (name_prefix or "data") + ".source",
                            definition={
                                "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Describes how the name of the transaction was determined.",
                                        "type": "string",
                                        "enum": [
                                            "custom",
                                            "url",
                                            "route",
                                            "view",
                                            "component",
                                            "sanitized",
                                            "task",
                                            "unknown",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "changes": {
                                    "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "propagations": {
                                                                "description": " The number of propagations from the start of the transaction to this change.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "source": {
                                                                "description": " Describes how the previous transaction name was determined.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/TransactionSource"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "timestamp": {
                                                                "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Timestamp"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ]
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                },
                                "original": {
                                    "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "propagations": {
                                    "description": " The total number of propagations during the transaction.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "source": {
                                    "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Describes how the name of the transaction was determined.",
                                            "type": "string",
                                            "enum": [
                                                "custom",
                                                "url",
                                                "route",
                                                "view",
                                                "component",
                                                "sanitized",
                                                "task",
                                                "unknown",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count25 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count25:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Additional information about the name of the transaction.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "changes": {
                                "description": " A list of changes prior to the final transaction name.\n\n This list must be empty if the transaction name is set at the beginning of the transaction\n and never changed. There is no placeholder entry for the initial transaction name.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "propagations": {
                                                            "description": " The number of propagations from the start of the transaction to this change.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "source": {
                                                            "description": " Describes how the previous transaction name was determined.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/TransactionSource"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "timestamp": {
                                                            "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Timestamp"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ]
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "original": {
                                "description": " The unmodified transaction name as obtained by the source.\n\n This value will only be set if the transaction name was modified during event processing.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "propagations": {
                                "description": " The total number of propagations during the transaction.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "source": {
                                "description": " Describes how the name of the transaction was determined.\n\n This will be used by the server to decide whether or not to scrub identifiers from the\n transaction name, or replace the entire name with a placeholder.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Describes how the name of the transaction was determined.",
                                        "type": "string",
                                        "enum": [
                                            "custom",
                                            "url",
                                            "route",
                                            "view",
                                            "component",
                                            "sanitized",
                                            "task",
                                            "unknown",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_transactionsource(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Describes how the name of the transaction was determined.",
                "type": "string",
                "enum": [
                    "custom",
                    "url",
                    "route",
                    "view",
                    "component",
                    "sanitized",
                    "task",
                    "unknown",
                ],
            },
            rule="type",
        )
    if data not in [
        "custom",
        "url",
        "route",
        "view",
        "component",
        "sanitized",
        "task",
        "unknown",
    ]:
        raise JsonSchemaValueException(
            ""
            + (name_prefix or "data")
            + " must be one of ['custom', 'url', 'route', 'view', 'component', 'sanitized', 'task', 'unknown']",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Describes how the name of the transaction was determined.",
                "type": "string",
                "enum": [
                    "custom",
                    "url",
                    "route",
                    "view",
                    "component",
                    "sanitized",
                    "task",
                    "unknown",
                ],
            },
            rule="enum",
        )
    return data


def validate___definitions_transactionnamechange(
    data, custom_formats={}, name_prefix=None
):
    data_any_of_count28 = 0
    if not data_any_of_count28:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "propagations": {
                                "description": " The number of propagations from the start of the transaction to this change.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "source": {
                                "description": " Describes how the previous transaction name was determined.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Describes how the name of the transaction was determined.",
                                        "type": "string",
                                        "enum": [
                                            "custom",
                                            "url",
                                            "route",
                                            "view",
                                            "component",
                                            "sanitized",
                                            "task",
                                            "unknown",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "timestamp": {
                                "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "propagations" in data_keys:
                    data_keys.remove("propagations")
                    data__propagations = data["propagations"]
                    if (
                        not isinstance(data__propagations, (int, NoneType))
                        and not (
                            isinstance(data__propagations, float)
                            and data__propagations.is_integer()
                        )
                        or isinstance(data__propagations, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".propagations must be integer or null",
                            value=data__propagations,
                            name="" + (name_prefix or "data") + ".propagations",
                            definition={
                                "description": " The number of propagations from the start of the transaction to this change.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__propagations, (int, float, Decimal)):
                        if data__propagations < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".propagations must be bigger than or equal to 0.0",
                                value=data__propagations,
                                name="" + (name_prefix or "data") + ".propagations",
                                definition={
                                    "description": " The number of propagations from the start of the transaction to this change.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "source" in data_keys:
                    data_keys.remove("source")
                    data__source = data["source"]
                    data__source_any_of_count29 = 0
                    if not data__source_any_of_count29:
                        try:
                            validate___definitions_transactionsource(
                                data__source,
                                custom_formats,
                                (name_prefix or "data") + ".source",
                            )
                            data__source_any_of_count29 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__source_any_of_count29:
                        try:
                            if not isinstance(data__source, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".source must be null",
                                    value=data__source,
                                    name="" + (name_prefix or "data") + ".source",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__source_any_of_count29 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__source_any_of_count29:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".source cannot be validated by any definition",
                            value=data__source,
                            name="" + (name_prefix or "data") + ".source",
                            definition={
                                "description": " Describes how the previous transaction name was determined.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Describes how the name of the transaction was determined.",
                                        "type": "string",
                                        "enum": [
                                            "custom",
                                            "url",
                                            "route",
                                            "view",
                                            "component",
                                            "sanitized",
                                            "task",
                                            "unknown",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "timestamp" in data_keys:
                    data_keys.remove("timestamp")
                    data__timestamp = data["timestamp"]
                    data__timestamp_any_of_count30 = 0
                    if not data__timestamp_any_of_count30:
                        try:
                            validate___definitions_timestamp(
                                data__timestamp,
                                custom_formats,
                                (name_prefix or "data") + ".timestamp",
                            )
                            data__timestamp_any_of_count30 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__timestamp_any_of_count30:
                        try:
                            if not isinstance(data__timestamp, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".timestamp must be null",
                                    value=data__timestamp,
                                    name="" + (name_prefix or "data") + ".timestamp",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__timestamp_any_of_count30 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__timestamp_any_of_count30:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".timestamp cannot be validated by any definition",
                            value=data__timestamp,
                            name="" + (name_prefix or "data") + ".timestamp",
                            definition={
                                "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "propagations": {
                                    "description": " The number of propagations from the start of the transaction to this change.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "source": {
                                    "description": " Describes how the previous transaction name was determined.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Describes how the name of the transaction was determined.",
                                            "type": "string",
                                            "enum": [
                                                "custom",
                                                "url",
                                                "route",
                                                "view",
                                                "component",
                                                "sanitized",
                                                "task",
                                                "unknown",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "timestamp": {
                                    "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                            "anyOf": [
                                                {"type": "number", "format": "double"},
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count28 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count28:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "propagations": {
                                "description": " The number of propagations from the start of the transaction to this change.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "source": {
                                "description": " Describes how the previous transaction name was determined.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Describes how the name of the transaction was determined.",
                                        "type": "string",
                                        "enum": [
                                            "custom",
                                            "url",
                                            "route",
                                            "view",
                                            "component",
                                            "sanitized",
                                            "task",
                                            "unknown",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "timestamp": {
                                "description": " Timestamp when the transaction name was changed.\n\n This adheres to the event timestamp specification.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ]
            },
            rule="anyOf",
        )
    return data


def validate___definitions_thread(data, custom_formats={}, name_prefix=None):
    data_any_of_count31 = 0
    if not data_any_of_count31:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "crashed": {
                                "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "current": {
                                "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "held_locks": {
                                "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {
                                    "anyOf": [
                                        {
                                            "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["type"],
                                                    "properties": {
                                                        "address": {
                                                            "description": " Address of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "class_name": {
                                                            "description": " Class name of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "package_name": {
                                                            "description": " Package name of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "thread_id": {
                                                            "description": " Thread ID that's holding the lock.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ThreadId"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "type": {
                                                            "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/LockReasonType"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "id": {
                                "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "main": {
                                "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "name": {
                                "description": " Display name of this thread.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "stacktrace": {
                                "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "state": {
                                "description": " Thread state at the time of the crash.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "crashed" in data_keys:
                    data_keys.remove("crashed")
                    data__crashed = data["crashed"]
                    if not isinstance(data__crashed, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".crashed must be boolean or null",
                            value=data__crashed,
                            name="" + (name_prefix or "data") + ".crashed",
                            definition={
                                "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "current" in data_keys:
                    data_keys.remove("current")
                    data__current = data["current"]
                    if not isinstance(data__current, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".current must be boolean or null",
                            value=data__current,
                            name="" + (name_prefix or "data") + ".current",
                            definition={
                                "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "held_locks" in data_keys:
                    data_keys.remove("held_locks")
                    data__heldlocks = data["held_locks"]
                    if not isinstance(data__heldlocks, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".held_locks must be object or null",
                            value=data__heldlocks,
                            name="" + (name_prefix or "data") + ".held_locks",
                            definition={
                                "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {
                                    "anyOf": [
                                        {
                                            "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["type"],
                                                    "properties": {
                                                        "address": {
                                                            "description": " Address of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "class_name": {
                                                            "description": " Class name of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "package_name": {
                                                            "description": " Package name of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "thread_id": {
                                                            "description": " Thread ID that's holding the lock.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ThreadId"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "type": {
                                                            "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/LockReasonType"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            rule="type",
                        )
                    data__heldlocks_is_dict = isinstance(data__heldlocks, dict)
                    if data__heldlocks_is_dict:
                        data__heldlocks_keys = set(data__heldlocks.keys())
                        for data__heldlocks_key in data__heldlocks_keys:
                            if data__heldlocks_key not in []:
                                data__heldlocks_value = data__heldlocks.get(
                                    data__heldlocks_key
                                )
                                data__heldlocks_value_any_of_count32 = 0
                                if not data__heldlocks_value_any_of_count32:
                                    try:
                                        validate___definitions_lockreason(
                                            data__heldlocks_value,
                                            custom_formats,
                                            (name_prefix or "data")
                                            + ".held_locks.{data__heldlocks_key}".format(
                                                **locals()
                                            ),
                                        )
                                        data__heldlocks_value_any_of_count32 += 1
                                    except JsonSchemaValueException:
                                        pass
                                if not data__heldlocks_value_any_of_count32:
                                    try:
                                        if not isinstance(
                                            data__heldlocks_value, (NoneType)
                                        ):
                                            raise JsonSchemaValueException(
                                                ""
                                                + (name_prefix or "data")
                                                + ".held_locks.{data__heldlocks_key}".format(
                                                    **locals()
                                                )
                                                + " must be null",
                                                value=data__heldlocks_value,
                                                name=""
                                                + (name_prefix or "data")
                                                + ".held_locks.{data__heldlocks_key}".format(
                                                    **locals()
                                                )
                                                + "",
                                                definition={"type": "null"},
                                                rule="type",
                                            )
                                        data__heldlocks_value_any_of_count32 += 1
                                    except JsonSchemaValueException:
                                        pass
                                if not data__heldlocks_value_any_of_count32:
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + ".held_locks.{data__heldlocks_key}".format(
                                            **locals()
                                        )
                                        + " cannot be validated by any definition",
                                        value=data__heldlocks_value,
                                        name=""
                                        + (name_prefix or "data")
                                        + ".held_locks.{data__heldlocks_key}".format(
                                            **locals()
                                        )
                                        + "",
                                        definition={
                                            "anyOf": [
                                                {
                                                    "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "required": ["type"],
                                                            "properties": {
                                                                "address": {
                                                                    "description": " Address of the java monitor object.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "class_name": {
                                                                    "description": " Class name of the java monitor object.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "package_name": {
                                                                    "description": " Package name of the java monitor object.",
                                                                    "default": None,
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ],
                                                                },
                                                                "thread_id": {
                                                                    "description": " Thread ID that's holding the lock.",
                                                                    "default": None,
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/ThreadId"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                                "type": {
                                                                    "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/LockReasonType"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ],
                                                                },
                                                            },
                                                            "additionalProperties": False,
                                                        }
                                                    ],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                        rule="anyOf",
                                    )
                if "id" in data_keys:
                    data_keys.remove("id")
                    data__id = data["id"]
                    data__id_any_of_count33 = 0
                    if not data__id_any_of_count33:
                        try:
                            validate___definitions_threadid(
                                data__id,
                                custom_formats,
                                (name_prefix or "data") + ".id",
                            )
                            data__id_any_of_count33 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__id_any_of_count33:
                        try:
                            if not isinstance(data__id, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".id must be null",
                                    value=data__id,
                                    name="" + (name_prefix or "data") + ".id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__id_any_of_count33 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__id_any_of_count33:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".id cannot be validated by any definition",
                            value=data__id,
                            name="" + (name_prefix or "data") + ".id",
                            definition={
                                "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "main" in data_keys:
                    data_keys.remove("main")
                    data__main = data["main"]
                    if not isinstance(data__main, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".main must be boolean or null",
                            value=data__main,
                            name="" + (name_prefix or "data") + ".main",
                            definition={
                                "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Display name of this thread.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "stacktrace" in data_keys:
                    data_keys.remove("stacktrace")
                    data__stacktrace = data["stacktrace"]
                    data__stacktrace_any_of_count34 = 0
                    if not data__stacktrace_any_of_count34:
                        try:
                            validate___definitions_stacktrace(
                                data__stacktrace,
                                custom_formats,
                                (name_prefix or "data") + ".stacktrace",
                            )
                            data__stacktrace_any_of_count34 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__stacktrace_any_of_count34:
                        try:
                            if not isinstance(data__stacktrace, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".stacktrace must be null",
                                    value=data__stacktrace,
                                    name="" + (name_prefix or "data") + ".stacktrace",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__stacktrace_any_of_count34 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__stacktrace_any_of_count34:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".stacktrace cannot be validated by any definition",
                            value=data__stacktrace,
                            name="" + (name_prefix or "data") + ".stacktrace",
                            definition={
                                "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "state" in data_keys:
                    data_keys.remove("state")
                    data__state = data["state"]
                    if not isinstance(data__state, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".state must be string or null",
                            value=data__state,
                            name="" + (name_prefix or "data") + ".state",
                            definition={
                                "description": " Thread state at the time of the crash.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "crashed": {
                                    "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "current": {
                                    "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "held_locks": {
                                    "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": {
                                        "anyOf": [
                                            {
                                                "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "required": ["type"],
                                                        "properties": {
                                                            "address": {
                                                                "description": " Address of the java monitor object.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "class_name": {
                                                                "description": " Class name of the java monitor object.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "package_name": {
                                                                "description": " Package name of the java monitor object.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "thread_id": {
                                                                "description": " Thread ID that's holding the lock.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/ThreadId"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "type": {
                                                                "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/LockReasonType"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                },
                                "id": {
                                    "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Represents a thread id.",
                                            "anyOf": [
                                                {
                                                    "type": "integer",
                                                    "format": "uint64",
                                                    "minimum": 0.0,
                                                },
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "main": {
                                    "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "name": {
                                    "description": " Display name of this thread.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "stacktrace": {
                                    "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {"$ref": "#/definitions/RawStacktrace"}
                                            ]
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "state": {
                                    "description": " Thread state at the time of the crash.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count31 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count31:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A process thread of an event.\n\n The Threads Interface specifies threads that were running at the time an event happened. These threads can also contain stack traces.\n\n An event may contain one or more threads in an attribute named `threads`.\n\n The following example illustrates the threads part of the event payload and omits other attributes for simplicity.\n\n ```json\n {\n   "threads": {\n     "values": [\n       {\n         "id": "0",\n         "name": "main",\n         "crashed": true,\n         "stacktrace": {}\n       }\n     ]\n   }\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "crashed": {
                                "description": " A flag indicating whether the thread crashed. Defaults to `false`.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "current": {
                                "description": " A flag indicating whether the thread was in the foreground. Defaults to `false`.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "held_locks": {
                                "description": " Represents a collection of locks (java monitor objects) held by a thread.\n\n A map of lock object addresses and their respective lock reason/details.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {
                                    "anyOf": [
                                        {
                                            "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["type"],
                                                    "properties": {
                                                        "address": {
                                                            "description": " Address of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "class_name": {
                                                            "description": " Class name of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "package_name": {
                                                            "description": " Package name of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "thread_id": {
                                                            "description": " Thread ID that's holding the lock.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ThreadId"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "type": {
                                                            "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/LockReasonType"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "id": {
                                "description": " The ID of the thread. Typically a number or numeric string.\n\n Needs to be unique among the threads. An exception can set the `thread_id` attribute to cross-reference this thread.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "main": {
                                "description": " A flag indicating whether the thread was responsible for rendering the user interface.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "name": {
                                "description": " Display name of this thread.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "stacktrace": {
                                "description": " Stack trace containing frames of this exception.\n\n The thread that crashed with an exception should not have a stack trace, but instead, the `thread_id` attribute should be set on the exception and Sentry will connect the two.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "state": {
                                "description": " Thread state at the time of the crash.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_threadid(data, custom_formats={}, name_prefix=None):
    data_any_of_count35 = 0
    if not data_any_of_count35:
        try:
            if (
                not isinstance(data, (int))
                and not (isinstance(data, float) and data.is_integer())
                or isinstance(data, bool)
            ):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be integer",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "integer", "format": "uint64", "minimum": 0.0},
                    rule="type",
                )
            if isinstance(data, (int, float, Decimal)):
                if data < 0.0:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must be bigger than or equal to 0.0",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "integer",
                            "format": "uint64",
                            "minimum": 0.0,
                        },
                        rule="minimum",
                    )
            data_any_of_count35 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count35:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count35 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count35:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Represents a thread id.",
                "anyOf": [
                    {"type": "integer", "format": "uint64", "minimum": 0.0},
                    {"type": "string"},
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_lockreason(data, custom_formats={}, name_prefix=None):
    data_any_of_count36 = 0
    if not data_any_of_count36:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["type"],
                        "properties": {
                            "address": {
                                "description": " Address of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "class_name": {
                                "description": " Class name of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "package_name": {
                                "description": " Package name of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "thread_id": {
                                "description": " Thread ID that's holding the lock.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "type": {
                                "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                "anyOf": [
                                    {
                                        "description": "Possible lock types responsible for a thread's blocked state",
                                        "type": "string",
                                        "enum": [
                                            "locked",
                                            "waiting",
                                            "sleeping",
                                            "blocked",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["type"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["type"],
                            "properties": {
                                "address": {
                                    "description": " Address of the java monitor object.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "class_name": {
                                    "description": " Class name of the java monitor object.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "package_name": {
                                    "description": " Package name of the java monitor object.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "thread_id": {
                                    "description": " Thread ID that's holding the lock.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Represents a thread id.",
                                            "anyOf": [
                                                {
                                                    "type": "integer",
                                                    "format": "uint64",
                                                    "minimum": 0.0,
                                                },
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "type": {
                                    "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                    "anyOf": [
                                        {
                                            "description": "Possible lock types responsible for a thread's blocked state",
                                            "type": "string",
                                            "enum": [
                                                "locked",
                                                "waiting",
                                                "sleeping",
                                                "blocked",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "address" in data_keys:
                    data_keys.remove("address")
                    data__address = data["address"]
                    if not isinstance(data__address, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".address must be string or null",
                            value=data__address,
                            name="" + (name_prefix or "data") + ".address",
                            definition={
                                "description": " Address of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "class_name" in data_keys:
                    data_keys.remove("class_name")
                    data__classname = data["class_name"]
                    if not isinstance(data__classname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".class_name must be string or null",
                            value=data__classname,
                            name="" + (name_prefix or "data") + ".class_name",
                            definition={
                                "description": " Class name of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "package_name" in data_keys:
                    data_keys.remove("package_name")
                    data__packagename = data["package_name"]
                    if not isinstance(data__packagename, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".package_name must be string or null",
                            value=data__packagename,
                            name="" + (name_prefix or "data") + ".package_name",
                            definition={
                                "description": " Package name of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "thread_id" in data_keys:
                    data_keys.remove("thread_id")
                    data__threadid = data["thread_id"]
                    data__threadid_any_of_count37 = 0
                    if not data__threadid_any_of_count37:
                        try:
                            validate___definitions_threadid(
                                data__threadid,
                                custom_formats,
                                (name_prefix or "data") + ".thread_id",
                            )
                            data__threadid_any_of_count37 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__threadid_any_of_count37:
                        try:
                            if not isinstance(data__threadid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".thread_id must be null",
                                    value=data__threadid,
                                    name="" + (name_prefix or "data") + ".thread_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__threadid_any_of_count37 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__threadid_any_of_count37:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".thread_id cannot be validated by any definition",
                            value=data__threadid,
                            name="" + (name_prefix or "data") + ".thread_id",
                            definition={
                                "description": " Thread ID that's holding the lock.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "type" in data_keys:
                    data_keys.remove("type")
                    data__type = data["type"]
                    data__type_any_of_count38 = 0
                    if not data__type_any_of_count38:
                        try:
                            validate___definitions_lockreasontype(
                                data__type,
                                custom_formats,
                                (name_prefix or "data") + ".type",
                            )
                            data__type_any_of_count38 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__type_any_of_count38:
                        try:
                            if not isinstance(data__type, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".type must be null",
                                    value=data__type,
                                    name="" + (name_prefix or "data") + ".type",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__type_any_of_count38 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__type_any_of_count38:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".type cannot be validated by any definition",
                            value=data__type,
                            name="" + (name_prefix or "data") + ".type",
                            definition={
                                "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                "anyOf": [
                                    {
                                        "description": "Possible lock types responsible for a thread's blocked state",
                                        "type": "string",
                                        "enum": [
                                            "locked",
                                            "waiting",
                                            "sleeping",
                                            "blocked",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["type"],
                            "properties": {
                                "address": {
                                    "description": " Address of the java monitor object.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "class_name": {
                                    "description": " Class name of the java monitor object.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "package_name": {
                                    "description": " Package name of the java monitor object.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "thread_id": {
                                    "description": " Thread ID that's holding the lock.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Represents a thread id.",
                                            "anyOf": [
                                                {
                                                    "type": "integer",
                                                    "format": "uint64",
                                                    "minimum": 0.0,
                                                },
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "type": {
                                    "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                    "anyOf": [
                                        {
                                            "description": "Possible lock types responsible for a thread's blocked state",
                                            "type": "string",
                                            "enum": [
                                                "locked",
                                                "waiting",
                                                "sleeping",
                                                "blocked",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count36 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count36:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["type"],
                        "properties": {
                            "address": {
                                "description": " Address of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "class_name": {
                                "description": " Class name of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "package_name": {
                                "description": " Package name of the java monitor object.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "thread_id": {
                                "description": " Thread ID that's holding the lock.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "type": {
                                "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                "anyOf": [
                                    {
                                        "description": "Possible lock types responsible for a thread's blocked state",
                                        "type": "string",
                                        "enum": [
                                            "locked",
                                            "waiting",
                                            "sleeping",
                                            "blocked",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_lockreasontype(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Possible lock types responsible for a thread's blocked state",
                "type": "string",
                "enum": ["locked", "waiting", "sleeping", "blocked"],
            },
            rule="type",
        )
    if data not in ["locked", "waiting", "sleeping", "blocked"]:
        raise JsonSchemaValueException(
            ""
            + (name_prefix or "data")
            + " must be one of ['locked', 'waiting', 'sleeping', 'blocked']",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Possible lock types responsible for a thread's blocked state",
                "type": "string",
                "enum": ["locked", "waiting", "sleeping", "blocked"],
            },
            rule="enum",
        )
    return data


def validate___definitions_tags(data, custom_formats={}, name_prefix=None):
    data_any_of_count39 = 0
    if not data_any_of_count39:
        try:
            data_any_of_count40 = 0
            if not data_any_of_count40:
                try:
                    if not isinstance(data, (dict)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + " must be object",
                            value=data,
                            name="" + (name_prefix or "data") + "",
                            definition={
                                "type": "object",
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            rule="type",
                        )
                    data_is_dict = isinstance(data, dict)
                    if data_is_dict:
                        data_keys = set(data.keys())
                        for data_key in data_keys:
                            if data_key not in []:
                                data_value = data.get(data_key)
                                if not isinstance(data_value, (str, NoneType)):
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + ".{data_key}".format(**locals())
                                        + " must be string or null",
                                        value=data_value,
                                        name=""
                                        + (name_prefix or "data")
                                        + ".{data_key}".format(**locals())
                                        + "",
                                        definition={"type": ["string", "null"]},
                                        rule="type",
                                    )
                    data_any_of_count40 += 1
                except JsonSchemaValueException:
                    pass
            if not data_any_of_count40:
                try:
                    if not isinstance(data, (list, tuple)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + " must be array",
                            value=data,
                            name="" + (name_prefix or "data") + "",
                            definition={
                                "type": "array",
                                "items": {
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": [
                                                        {"type": ["string", "null"]},
                                                        {"type": ["string", "null"]},
                                                    ],
                                                    "maxItems": 2,
                                                    "minItems": 2,
                                                }
                                            ]
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            rule="type",
                        )
                    data_is_list = isinstance(data, (list, tuple))
                    if data_is_list:
                        data_len = len(data)
                        for data_x, data_item in enumerate(data):
                            data_item_any_of_count41 = 0
                            if not data_item_any_of_count41:
                                try:
                                    validate___definitions_tagentry(
                                        data_item,
                                        custom_formats,
                                        (name_prefix or "data")
                                        + "[{data_x}]".format(**locals()),
                                    )
                                    data_item_any_of_count41 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data_item_any_of_count41:
                                try:
                                    if not isinstance(data_item, (NoneType)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + "[{data_x}]".format(**locals())
                                            + " must be null",
                                            value=data_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + "[{data_x}]".format(**locals())
                                            + "",
                                            definition={"type": "null"},
                                            rule="type",
                                        )
                                    data_item_any_of_count41 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data_item_any_of_count41:
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + "[{data_x}]".format(**locals())
                                    + " cannot be validated by any definition",
                                    value=data_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + "[{data_x}]".format(**locals())
                                    + "",
                                    definition={
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "array",
                                                        "items": [
                                                            {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                            {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        ],
                                                        "maxItems": 2,
                                                        "minItems": 2,
                                                    }
                                                ]
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                    rule="anyOf",
                                )
                    data_any_of_count40 += 1
                except JsonSchemaValueException:
                    pass
            if not data_any_of_count40:
                raise JsonSchemaValueException(
                    ""
                    + (name_prefix or "data")
                    + " cannot be validated by any definition",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "anyOf": [
                            {
                                "type": "object",
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            {
                                "type": "array",
                                "items": {
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": [
                                                        {"type": ["string", "null"]},
                                                        {"type": ["string", "null"]},
                                                    ],
                                                    "maxItems": 2,
                                                    "minItems": 2,
                                                }
                                            ]
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                        ]
                    },
                    rule="anyOf",
                )
            data_any_of_count39 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count39:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Manual key/value tag pairs.",
                "anyOf": [
                    {
                        "anyOf": [
                            {
                                "type": "object",
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            {
                                "type": "array",
                                "items": {
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {
                                                    "type": "array",
                                                    "items": [
                                                        {"type": ["string", "null"]},
                                                        {"type": ["string", "null"]},
                                                    ],
                                                    "maxItems": 2,
                                                    "minItems": 2,
                                                }
                                            ]
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                        ]
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_tagentry(data, custom_formats={}, name_prefix=None):
    data_any_of_count42 = 0
    if not data_any_of_count42:
        try:
            if not isinstance(data, (list, tuple)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be array",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "array",
                        "items": [
                            {"type": ["string", "null"]},
                            {"type": ["string", "null"]},
                        ],
                        "maxItems": 2,
                        "minItems": 2,
                    },
                    rule="type",
                )
            data_is_list = isinstance(data, (list, tuple))
            if data_is_list:
                data_len = len(data)
                if data_len < 2:
                    raise JsonSchemaValueException(
                        "" + (name_prefix or "data") + " must contain at least 2 items",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "array",
                            "items": [
                                {"type": ["string", "null"]},
                                {"type": ["string", "null"]},
                            ],
                            "maxItems": 2,
                            "minItems": 2,
                        },
                        rule="minItems",
                    )
                if data_len > 2:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain less than or equal to 2 items",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "array",
                            "items": [
                                {"type": ["string", "null"]},
                                {"type": ["string", "null"]},
                            ],
                            "maxItems": 2,
                            "minItems": 2,
                        },
                        rule="maxItems",
                    )
                if data_len > 0:
                    data__0 = data[0]
                    if not isinstance(data__0, (str, NoneType)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + "[0] must be string or null",
                            value=data__0,
                            name="" + (name_prefix or "data") + "[0]",
                            definition={"type": ["string", "null"]},
                            rule="type",
                        )
                if data_len > 1:
                    data__1 = data[1]
                    if not isinstance(data__1, (str, NoneType)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + "[1] must be string or null",
                            value=data__1,
                            name="" + (name_prefix or "data") + "[1]",
                            definition={"type": ["string", "null"]},
                            rule="type",
                        )
            data_any_of_count42 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count42:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "anyOf": [
                    {
                        "type": "array",
                        "items": [
                            {"type": ["string", "null"]},
                            {"type": ["string", "null"]},
                        ],
                        "maxItems": 2,
                        "minItems": 2,
                    }
                ]
            },
            rule="anyOf",
        )
    return data


def validate___definitions_stacktrace(data, custom_formats={}, name_prefix=None):
    data_any_of_count43 = 0
    if not data_any_of_count43:
        try:
            validate___definitions_rawstacktrace(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count43 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count43:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "anyOf": [
                    {
                        "description": ' A stack trace of a single thread.\n\n A stack trace contains a list of frames, each with various bits (most optional) describing the\n context of that frame. Frames should be sorted from oldest to newest.\n\n For the given example program written in Python:\n\n ```python\n def foo():\n     my_var = \'foo\'\n     raise ValueError()\n\n def main():\n     foo()\n ```\n\n A minimalistic stack trace for the above program in the correct order:\n\n ```json\n {\n   "frames": [\n     {"function": "main"},\n     {"function": "foo"}\n   ]\n }\n ```\n\n The top frame fully symbolicated with five lines of source context:\n\n ```json\n {\n   "frames": [{\n     "in_app": true,\n     "function": "myfunction",\n     "abs_path": "/real/file/name.py",\n     "filename": "file/name.py",\n     "lineno": 3,\n     "vars": {\n       "my_var": "\'value\'"\n     },\n     "pre_context": [\n       "def foo():",\n       "  my_var = \'foo\'",\n     ],\n     "context_line": "  raise ValueError()",\n     "post_context": [\n       "",\n       "def main():"\n     ],\n   }]\n }\n ```\n\n A minimal native stack trace with register values. Note that the `package` event attribute must\n be "native" for these frames to be symbolicated.\n\n ```json\n {\n   "frames": [\n     {"instruction_addr": "0x7fff5bf3456c"},\n     {"instruction_addr": "0x7fff5bf346c0"},\n   ],\n   "registers": {\n     "rip": "0x00007ff6eef54be2",\n     "rsp": "0x0000003b710cd9e0"\n   }\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["frames"],
                                "properties": {
                                    "frames": {
                                        "description": " Required. A non-empty list of stack frames. The list is ordered from caller to callee, or\n oldest to youngest. The last frame is the one creating the exception.",
                                        "type": ["array", "null"],
                                        "items": {
                                            "anyOf": [
                                                {"$ref": "#/definitions/Frame"},
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    "instruction_addr_adjustment": {
                                        "description": " Optional. A flag that indicates if, and how, `instruction_addr` values need to be adjusted\n before they are symbolicated.",
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "$ref": "#/definitions/InstructionAddrAdjustment"
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "lang": {
                                        "description": " The language of the stacktrace.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "registers": {
                                        "description": " Register values of the thread (top frame).\n\n A map of register names and their values. The values should contain the actual register\n values of the thread, thus mapping to the last frame in the list.",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": {
                                            "anyOf": [
                                                {"$ref": "#/definitions/RegVal"},
                                                {"type": "null"},
                                            ]
                                        },
                                    },
                                    "snapshot": {
                                        "description": " Indicates that this stack trace is a snapshot triggered by an external signal.\n\n If this field is `false`, then the stack trace points to the code that caused this stack\n trace to be created. This can be the location of a raised exception, as well as an exception\n or signal handler.\n\n If this field is `true`, then the stack trace was captured as part of creating an unrelated\n event. For example, a thread other than the crashing thread, or a stack trace computed as a\n result of an external kill signal.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    }
                ]
            },
            rule="anyOf",
        )
    return data


def validate___definitions_rawstacktrace(data, custom_formats={}, name_prefix=None):
    data_any_of_count44 = 0
    if not data_any_of_count44:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["frames"],
                        "properties": {
                            "frames": {
                                "description": " Required. A non-empty list of stack frames. The list is ordered from caller to callee, or\n oldest to youngest. The last frame is the one creating the exception.",
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "abs_path": {
                                                            "description": " Absolute path to the source file.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/NativeImagePath"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "addr_mode": {
                                                            "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "colno": {
                                                            "description": " Column number within the source file, starting at 1.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "context_line": {
                                                            "description": " Source code of the current line (`lineno`).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "filename": {
                                                            "description": " The source file name (basename only).",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/NativeImagePath"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "function": {
                                                            "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "function_id": {
                                                            "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "image_addr": {
                                                            "description": " (C/C++/Native) Start address of the containing code module (image).",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "in_app": {
                                                            "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "instruction_addr": {
                                                            "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "lineno": {
                                                            "description": " Line number within the source file, starting at 1.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "lock": {
                                                            "description": " A possible lock (java monitor object) held by this frame.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/LockReason"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "module": {
                                                            "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "package": {
                                                            "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "platform": {
                                                            "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "post_context": {
                                                            "description": " Source code of the lines after `lineno`.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        "pre_context": {
                                                            "description": " Source code leading up to `lineno`.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        "raw_function": {
                                                            "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "stack_start": {
                                                            "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "symbol": {
                                                            "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "symbol_addr": {
                                                            "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "vars": {
                                                            "description": " Mapping of local variables and expression names that were available in this frame.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/FrameVars"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "instruction_addr_adjustment": {
                                "description": " Optional. A flag that indicates if, and how, `instruction_addr` values need to be adjusted\n before they are symbolicated.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                                        "type": "string",
                                        "enum": [
                                            "auto",
                                            "all_but_first",
                                            "all",
                                            "none",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "lang": {
                                "description": " The language of the stacktrace.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "registers": {
                                "description": " Register values of the thread (top frame).\n\n A map of register names and their values. The values should contain the actual register\n values of the thread, thus mapping to the last frame in the list.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {
                                    "anyOf": [{"type": "string"}, {"type": "null"}]
                                },
                            },
                            "snapshot": {
                                "description": " Indicates that this stack trace is a snapshot triggered by an external signal.\n\n If this field is `false`, then the stack trace points to the code that caused this stack\n trace to be created. This can be the location of a raised exception, as well as an exception\n or signal handler.\n\n If this field is `true`, then the stack trace was captured as part of creating an unrelated\n event. For example, a thread other than the crashing thread, or a stack trace computed as a\n result of an external kill signal.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["frames"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["frames"],
                            "properties": {
                                "frames": {
                                    "description": " Required. A non-empty list of stack frames. The list is ordered from caller to callee, or\n oldest to youngest. The last frame is the one creating the exception.",
                                    "type": ["array", "null"],
                                    "items": {
                                        "anyOf": [
                                            {
                                                "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "abs_path": {
                                                                "description": " Absolute path to the source file.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/NativeImagePath"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "addr_mode": {
                                                                "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "colno": {
                                                                "description": " Column number within the source file, starting at 1.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "context_line": {
                                                                "description": " Source code of the current line (`lineno`).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "filename": {
                                                                "description": " The source file name (basename only).",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/NativeImagePath"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "function": {
                                                                "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "function_id": {
                                                                "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "image_addr": {
                                                                "description": " (C/C++/Native) Start address of the containing code module (image).",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "in_app": {
                                                                "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "instruction_addr": {
                                                                "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "lineno": {
                                                                "description": " Line number within the source file, starting at 1.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "lock": {
                                                                "description": " A possible lock (java monitor object) held by this frame.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/LockReason"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "module": {
                                                                "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "package": {
                                                                "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "platform": {
                                                                "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "post_context": {
                                                                "description": " Source code of the lines after `lineno`.",
                                                                "default": None,
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            "pre_context": {
                                                                "description": " Source code leading up to `lineno`.",
                                                                "default": None,
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            "raw_function": {
                                                                "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "stack_start": {
                                                                "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "symbol": {
                                                                "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "symbol_addr": {
                                                                "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "vars": {
                                                                "description": " Mapping of local variables and expression names that were available in this frame.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/FrameVars"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                },
                                "instruction_addr_adjustment": {
                                    "description": " Optional. A flag that indicates if, and how, `instruction_addr` values need to be adjusted\n before they are symbolicated.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                                            "type": "string",
                                            "enum": [
                                                "auto",
                                                "all_but_first",
                                                "all",
                                                "none",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "lang": {
                                    "description": " The language of the stacktrace.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "registers": {
                                    "description": " Register values of the thread (top frame).\n\n A map of register names and their values. The values should contain the actual register\n values of the thread, thus mapping to the last frame in the list.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": {
                                        "anyOf": [{"type": "string"}, {"type": "null"}]
                                    },
                                },
                                "snapshot": {
                                    "description": " Indicates that this stack trace is a snapshot triggered by an external signal.\n\n If this field is `false`, then the stack trace points to the code that caused this stack\n trace to be created. This can be the location of a raised exception, as well as an exception\n or signal handler.\n\n If this field is `true`, then the stack trace was captured as part of creating an unrelated\n event. For example, a thread other than the crashing thread, or a stack trace computed as a\n result of an external kill signal.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "frames" in data_keys:
                    data_keys.remove("frames")
                    data__frames = data["frames"]
                    if not isinstance(data__frames, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".frames must be array or null",
                            value=data__frames,
                            name="" + (name_prefix or "data") + ".frames",
                            definition={
                                "description": " Required. A non-empty list of stack frames. The list is ordered from caller to callee, or\n oldest to youngest. The last frame is the one creating the exception.",
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "abs_path": {
                                                            "description": " Absolute path to the source file.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/NativeImagePath"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "addr_mode": {
                                                            "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "colno": {
                                                            "description": " Column number within the source file, starting at 1.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "context_line": {
                                                            "description": " Source code of the current line (`lineno`).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "filename": {
                                                            "description": " The source file name (basename only).",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/NativeImagePath"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "function": {
                                                            "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "function_id": {
                                                            "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "image_addr": {
                                                            "description": " (C/C++/Native) Start address of the containing code module (image).",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "in_app": {
                                                            "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "instruction_addr": {
                                                            "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "lineno": {
                                                            "description": " Line number within the source file, starting at 1.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "lock": {
                                                            "description": " A possible lock (java monitor object) held by this frame.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/LockReason"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "module": {
                                                            "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "package": {
                                                            "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "platform": {
                                                            "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "post_context": {
                                                            "description": " Source code of the lines after `lineno`.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        "pre_context": {
                                                            "description": " Source code leading up to `lineno`.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        "raw_function": {
                                                            "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "stack_start": {
                                                            "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "symbol": {
                                                            "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "symbol_addr": {
                                                            "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "vars": {
                                                            "description": " Mapping of local variables and expression names that were available in this frame.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/FrameVars"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            rule="type",
                        )
                    data__frames_is_list = isinstance(data__frames, (list, tuple))
                    if data__frames_is_list:
                        data__frames_len = len(data__frames)
                        for data__frames_x, data__frames_item in enumerate(
                            data__frames
                        ):
                            data__frames_item_any_of_count45 = 0
                            if not data__frames_item_any_of_count45:
                                try:
                                    validate___definitions_frame(
                                        data__frames_item,
                                        custom_formats,
                                        (name_prefix or "data")
                                        + ".frames[{data__frames_x}]".format(
                                            **locals()
                                        ),
                                    )
                                    data__frames_item_any_of_count45 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__frames_item_any_of_count45:
                                try:
                                    if not isinstance(data__frames_item, (NoneType)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".frames[{data__frames_x}]".format(
                                                **locals()
                                            )
                                            + " must be null",
                                            value=data__frames_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".frames[{data__frames_x}]".format(
                                                **locals()
                                            )
                                            + "",
                                            definition={"type": "null"},
                                            rule="type",
                                        )
                                    data__frames_item_any_of_count45 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__frames_item_any_of_count45:
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".frames[{data__frames_x}]".format(**locals())
                                    + " cannot be validated by any definition",
                                    value=data__frames_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".frames[{data__frames_x}]".format(**locals())
                                    + "",
                                    definition={
                                        "anyOf": [
                                            {
                                                "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "abs_path": {
                                                                "description": " Absolute path to the source file.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/NativeImagePath"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "addr_mode": {
                                                                "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "colno": {
                                                                "description": " Column number within the source file, starting at 1.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "context_line": {
                                                                "description": " Source code of the current line (`lineno`).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "filename": {
                                                                "description": " The source file name (basename only).",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/NativeImagePath"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "function": {
                                                                "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "function_id": {
                                                                "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "image_addr": {
                                                                "description": " (C/C++/Native) Start address of the containing code module (image).",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "in_app": {
                                                                "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "instruction_addr": {
                                                                "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "lineno": {
                                                                "description": " Line number within the source file, starting at 1.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "lock": {
                                                                "description": " A possible lock (java monitor object) held by this frame.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/LockReason"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "module": {
                                                                "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "package": {
                                                                "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "platform": {
                                                                "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "post_context": {
                                                                "description": " Source code of the lines after `lineno`.",
                                                                "default": None,
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            "pre_context": {
                                                                "description": " Source code leading up to `lineno`.",
                                                                "default": None,
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            "raw_function": {
                                                                "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "stack_start": {
                                                                "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "symbol": {
                                                                "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "symbol_addr": {
                                                                "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "vars": {
                                                                "description": " Mapping of local variables and expression names that were available in this frame.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/FrameVars"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                    rule="anyOf",
                                )
                if "instruction_addr_adjustment" in data_keys:
                    data_keys.remove("instruction_addr_adjustment")
                    data__instructionaddradjustment = data[
                        "instruction_addr_adjustment"
                    ]
                    data__instructionaddradjustment_any_of_count46 = 0
                    if not data__instructionaddradjustment_any_of_count46:
                        try:
                            validate___definitions_instructionaddradjustment(
                                data__instructionaddradjustment,
                                custom_formats,
                                (name_prefix or "data")
                                + ".instruction_addr_adjustment",
                            )
                            data__instructionaddradjustment_any_of_count46 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__instructionaddradjustment_any_of_count46:
                        try:
                            if not isinstance(
                                data__instructionaddradjustment, (NoneType)
                            ):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".instruction_addr_adjustment must be null",
                                    value=data__instructionaddradjustment,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".instruction_addr_adjustment",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__instructionaddradjustment_any_of_count46 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__instructionaddradjustment_any_of_count46:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".instruction_addr_adjustment cannot be validated by any definition",
                            value=data__instructionaddradjustment,
                            name=""
                            + (name_prefix or "data")
                            + ".instruction_addr_adjustment",
                            definition={
                                "description": " Optional. A flag that indicates if, and how, `instruction_addr` values need to be adjusted\n before they are symbolicated.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                                        "type": "string",
                                        "enum": [
                                            "auto",
                                            "all_but_first",
                                            "all",
                                            "none",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "lang" in data_keys:
                    data_keys.remove("lang")
                    data__lang = data["lang"]
                    if not isinstance(data__lang, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".lang must be string or null",
                            value=data__lang,
                            name="" + (name_prefix or "data") + ".lang",
                            definition={
                                "description": " The language of the stacktrace.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "registers" in data_keys:
                    data_keys.remove("registers")
                    data__registers = data["registers"]
                    if not isinstance(data__registers, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".registers must be object or null",
                            value=data__registers,
                            name="" + (name_prefix or "data") + ".registers",
                            definition={
                                "description": " Register values of the thread (top frame).\n\n A map of register names and their values. The values should contain the actual register\n values of the thread, thus mapping to the last frame in the list.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {
                                    "anyOf": [{"type": "string"}, {"type": "null"}]
                                },
                            },
                            rule="type",
                        )
                    data__registers_is_dict = isinstance(data__registers, dict)
                    if data__registers_is_dict:
                        data__registers_keys = set(data__registers.keys())
                        for data__registers_key in data__registers_keys:
                            if data__registers_key not in []:
                                data__registers_value = data__registers.get(
                                    data__registers_key
                                )
                                data__registers_value_any_of_count47 = 0
                                if not data__registers_value_any_of_count47:
                                    try:
                                        validate___definitions_regval(
                                            data__registers_value,
                                            custom_formats,
                                            (name_prefix or "data")
                                            + ".registers.{data__registers_key}".format(
                                                **locals()
                                            ),
                                        )
                                        data__registers_value_any_of_count47 += 1
                                    except JsonSchemaValueException:
                                        pass
                                if not data__registers_value_any_of_count47:
                                    try:
                                        if not isinstance(
                                            data__registers_value, (NoneType)
                                        ):
                                            raise JsonSchemaValueException(
                                                ""
                                                + (name_prefix or "data")
                                                + ".registers.{data__registers_key}".format(
                                                    **locals()
                                                )
                                                + " must be null",
                                                value=data__registers_value,
                                                name=""
                                                + (name_prefix or "data")
                                                + ".registers.{data__registers_key}".format(
                                                    **locals()
                                                )
                                                + "",
                                                definition={"type": "null"},
                                                rule="type",
                                            )
                                        data__registers_value_any_of_count47 += 1
                                    except JsonSchemaValueException:
                                        pass
                                if not data__registers_value_any_of_count47:
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + ".registers.{data__registers_key}".format(
                                            **locals()
                                        )
                                        + " cannot be validated by any definition",
                                        value=data__registers_value,
                                        name=""
                                        + (name_prefix or "data")
                                        + ".registers.{data__registers_key}".format(
                                            **locals()
                                        )
                                        + "",
                                        definition={
                                            "anyOf": [
                                                {"type": "string"},
                                                {"type": "null"},
                                            ]
                                        },
                                        rule="anyOf",
                                    )
                if "snapshot" in data_keys:
                    data_keys.remove("snapshot")
                    data__snapshot = data["snapshot"]
                    if not isinstance(data__snapshot, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".snapshot must be boolean or null",
                            value=data__snapshot,
                            name="" + (name_prefix or "data") + ".snapshot",
                            definition={
                                "description": " Indicates that this stack trace is a snapshot triggered by an external signal.\n\n If this field is `false`, then the stack trace points to the code that caused this stack\n trace to be created. This can be the location of a raised exception, as well as an exception\n or signal handler.\n\n If this field is `true`, then the stack trace was captured as part of creating an unrelated\n event. For example, a thread other than the crashing thread, or a stack trace computed as a\n result of an external kill signal.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["frames"],
                            "properties": {
                                "frames": {
                                    "description": " Required. A non-empty list of stack frames. The list is ordered from caller to callee, or\n oldest to youngest. The last frame is the one creating the exception.",
                                    "type": ["array", "null"],
                                    "items": {
                                        "anyOf": [
                                            {
                                                "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "abs_path": {
                                                                "description": " Absolute path to the source file.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/NativeImagePath"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "addr_mode": {
                                                                "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "colno": {
                                                                "description": " Column number within the source file, starting at 1.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "context_line": {
                                                                "description": " Source code of the current line (`lineno`).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "filename": {
                                                                "description": " The source file name (basename only).",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/NativeImagePath"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "function": {
                                                                "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "function_id": {
                                                                "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "image_addr": {
                                                                "description": " (C/C++/Native) Start address of the containing code module (image).",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "in_app": {
                                                                "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "instruction_addr": {
                                                                "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "lineno": {
                                                                "description": " Line number within the source file, starting at 1.",
                                                                "default": None,
                                                                "type": [
                                                                    "integer",
                                                                    "null",
                                                                ],
                                                                "format": "uint64",
                                                                "minimum": 0.0,
                                                            },
                                                            "lock": {
                                                                "description": " A possible lock (java monitor object) held by this frame.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/LockReason"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "module": {
                                                                "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "package": {
                                                                "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "platform": {
                                                                "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "post_context": {
                                                                "description": " Source code of the lines after `lineno`.",
                                                                "default": None,
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            "pre_context": {
                                                                "description": " Source code leading up to `lineno`.",
                                                                "default": None,
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            },
                                                            "raw_function": {
                                                                "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "stack_start": {
                                                                "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                                                "default": None,
                                                                "type": [
                                                                    "boolean",
                                                                    "null",
                                                                ],
                                                            },
                                                            "symbol": {
                                                                "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "symbol_addr": {
                                                                "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/Addr"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                            "vars": {
                                                                "description": " Mapping of local variables and expression names that were available in this frame.",
                                                                "default": None,
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/FrameVars"
                                                                    },
                                                                    {"type": "null"},
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                },
                                "instruction_addr_adjustment": {
                                    "description": " Optional. A flag that indicates if, and how, `instruction_addr` values need to be adjusted\n before they are symbolicated.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                                            "type": "string",
                                            "enum": [
                                                "auto",
                                                "all_but_first",
                                                "all",
                                                "none",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "lang": {
                                    "description": " The language of the stacktrace.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "registers": {
                                    "description": " Register values of the thread (top frame).\n\n A map of register names and their values. The values should contain the actual register\n values of the thread, thus mapping to the last frame in the list.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": {
                                        "anyOf": [{"type": "string"}, {"type": "null"}]
                                    },
                                },
                                "snapshot": {
                                    "description": " Indicates that this stack trace is a snapshot triggered by an external signal.\n\n If this field is `false`, then the stack trace points to the code that caused this stack\n trace to be created. This can be the location of a raised exception, as well as an exception\n or signal handler.\n\n If this field is `true`, then the stack trace was captured as part of creating an unrelated\n event. For example, a thread other than the crashing thread, or a stack trace computed as a\n result of an external kill signal.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count44 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count44:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A stack trace of a single thread.\n\n A stack trace contains a list of frames, each with various bits (most optional) describing the\n context of that frame. Frames should be sorted from oldest to newest.\n\n For the given example program written in Python:\n\n ```python\n def foo():\n     my_var = \'foo\'\n     raise ValueError()\n\n def main():\n     foo()\n ```\n\n A minimalistic stack trace for the above program in the correct order:\n\n ```json\n {\n   "frames": [\n     {"function": "main"},\n     {"function": "foo"}\n   ]\n }\n ```\n\n The top frame fully symbolicated with five lines of source context:\n\n ```json\n {\n   "frames": [{\n     "in_app": true,\n     "function": "myfunction",\n     "abs_path": "/real/file/name.py",\n     "filename": "file/name.py",\n     "lineno": 3,\n     "vars": {\n       "my_var": "\'value\'"\n     },\n     "pre_context": [\n       "def foo():",\n       "  my_var = \'foo\'",\n     ],\n     "context_line": "  raise ValueError()",\n     "post_context": [\n       "",\n       "def main():"\n     ],\n   }]\n }\n ```\n\n A minimal native stack trace with register values. Note that the `package` event attribute must\n be "native" for these frames to be symbolicated.\n\n ```json\n {\n   "frames": [\n     {"instruction_addr": "0x7fff5bf3456c"},\n     {"instruction_addr": "0x7fff5bf346c0"},\n   ],\n   "registers": {\n     "rip": "0x00007ff6eef54be2",\n     "rsp": "0x0000003b710cd9e0"\n   }\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["frames"],
                        "properties": {
                            "frames": {
                                "description": " Required. A non-empty list of stack frames. The list is ordered from caller to callee, or\n oldest to youngest. The last frame is the one creating the exception.",
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "abs_path": {
                                                            "description": " Absolute path to the source file.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/NativeImagePath"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "addr_mode": {
                                                            "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "colno": {
                                                            "description": " Column number within the source file, starting at 1.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "context_line": {
                                                            "description": " Source code of the current line (`lineno`).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "filename": {
                                                            "description": " The source file name (basename only).",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/NativeImagePath"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "function": {
                                                            "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "function_id": {
                                                            "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "image_addr": {
                                                            "description": " (C/C++/Native) Start address of the containing code module (image).",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "in_app": {
                                                            "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "instruction_addr": {
                                                            "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "lineno": {
                                                            "description": " Line number within the source file, starting at 1.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "lock": {
                                                            "description": " A possible lock (java monitor object) held by this frame.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/LockReason"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "module": {
                                                            "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "package": {
                                                            "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "platform": {
                                                            "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "post_context": {
                                                            "description": " Source code of the lines after `lineno`.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        "pre_context": {
                                                            "description": " Source code leading up to `lineno`.",
                                                            "default": None,
                                                            "type": ["array", "null"],
                                                            "items": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        "raw_function": {
                                                            "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "stack_start": {
                                                            "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "symbol": {
                                                            "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "symbol_addr": {
                                                            "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Addr"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "vars": {
                                                            "description": " Mapping of local variables and expression names that were available in this frame.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/FrameVars"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "instruction_addr_adjustment": {
                                "description": " Optional. A flag that indicates if, and how, `instruction_addr` values need to be adjusted\n before they are symbolicated.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                                        "type": "string",
                                        "enum": [
                                            "auto",
                                            "all_but_first",
                                            "all",
                                            "none",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "lang": {
                                "description": " The language of the stacktrace.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "registers": {
                                "description": " Register values of the thread (top frame).\n\n A map of register names and their values. The values should contain the actual register\n values of the thread, thus mapping to the last frame in the list.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": {
                                    "anyOf": [{"type": "string"}, {"type": "null"}]
                                },
                            },
                            "snapshot": {
                                "description": " Indicates that this stack trace is a snapshot triggered by an external signal.\n\n If this field is `false`, then the stack trace points to the code that caused this stack\n trace to be created. This can be the location of a raised exception, as well as an exception\n or signal handler.\n\n If this field is `true`, then the stack trace was captured as part of creating an unrelated\n event. For example, a thread other than the crashing thread, or a stack trace computed as a\n result of an external kill signal.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_regval(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={"type": "string"},
            rule="type",
        )
    return data


def validate___definitions_instructionaddradjustment(
    data, custom_formats={}, name_prefix=None
):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                "type": "string",
                "enum": ["auto", "all_but_first", "all", "none"],
            },
            rule="type",
        )
    if data not in ["auto", "all_but_first", "all", "none"]:
        raise JsonSchemaValueException(
            ""
            + (name_prefix or "data")
            + " must be one of ['auto', 'all_but_first', 'all', 'none']",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": 'Controls the mechanism by which the `instruction_addr` of a [`Stacktrace`] [`Frame`] is adjusted.\n\nThe adjustment tries to transform *return addresses* to *call addresses* for symbolication. Typically, this adjustment needs to be done for all frames but the first, as the first frame is usually taken directly from the cpu context of a hardware exception or a suspended thread and the stack trace is created from that.\n\nWhen the stack walking implementation truncates frames from the top, `"all"` frames should be adjusted. In case the stack walking implementation already does the adjustment when producing stack frames, `"none"` should be used here.',
                "type": "string",
                "enum": ["auto", "all_but_first", "all", "none"],
            },
            rule="enum",
        )
    return data


def validate___definitions_frame(data, custom_formats={}, name_prefix=None):
    data_any_of_count48 = 0
    if not data_any_of_count48:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "abs_path": {
                                "description": " Absolute path to the source file.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "addr_mode": {
                                "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "colno": {
                                "description": " Column number within the source file, starting at 1.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "context_line": {
                                "description": " Source code of the current line (`lineno`).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "filename": {
                                "description": " The source file name (basename only).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "function": {
                                "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "function_id": {
                                "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "image_addr": {
                                "description": " (C/C++/Native) Start address of the containing code module (image).",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "in_app": {
                                "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "instruction_addr": {
                                "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "lineno": {
                                "description": " Line number within the source file, starting at 1.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "lock": {
                                "description": " A possible lock (java monitor object) held by this frame.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["type"],
                                                "properties": {
                                                    "address": {
                                                        "description": " Address of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "class_name": {
                                                        "description": " Class name of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "package_name": {
                                                        "description": " Package name of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "thread_id": {
                                                        "description": " Thread ID that's holding the lock.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/ThreadId"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "type": {
                                                        "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/LockReasonType"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "module": {
                                "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "package": {
                                "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "platform": {
                                "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "post_context": {
                                "description": " Source code of the lines after `lineno`.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            "pre_context": {
                                "description": " Source code leading up to `lineno`.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            "raw_function": {
                                "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "stack_start": {
                                "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "symbol": {
                                "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "symbol_addr": {
                                "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "vars": {
                                "description": " Mapping of local variables and expression names that were available in this frame.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Frame local variables.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": True,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "abs_path" in data_keys:
                    data_keys.remove("abs_path")
                    data__abspath = data["abs_path"]
                    data__abspath_any_of_count49 = 0
                    if not data__abspath_any_of_count49:
                        try:
                            validate___definitions_nativeimagepath(
                                data__abspath,
                                custom_formats,
                                (name_prefix or "data") + ".abs_path",
                            )
                            data__abspath_any_of_count49 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__abspath_any_of_count49:
                        try:
                            if not isinstance(data__abspath, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".abs_path must be null",
                                    value=data__abspath,
                                    name="" + (name_prefix or "data") + ".abs_path",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__abspath_any_of_count49 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__abspath_any_of_count49:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".abs_path cannot be validated by any definition",
                            value=data__abspath,
                            name="" + (name_prefix or "data") + ".abs_path",
                            definition={
                                "description": " Absolute path to the source file.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "addr_mode" in data_keys:
                    data_keys.remove("addr_mode")
                    data__addrmode = data["addr_mode"]
                    if not isinstance(data__addrmode, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".addr_mode must be string or null",
                            value=data__addrmode,
                            name="" + (name_prefix or "data") + ".addr_mode",
                            definition={
                                "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "colno" in data_keys:
                    data_keys.remove("colno")
                    data__colno = data["colno"]
                    if (
                        not isinstance(data__colno, (int, NoneType))
                        and not (
                            isinstance(data__colno, float) and data__colno.is_integer()
                        )
                        or isinstance(data__colno, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".colno must be integer or null",
                            value=data__colno,
                            name="" + (name_prefix or "data") + ".colno",
                            definition={
                                "description": " Column number within the source file, starting at 1.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__colno, (int, float, Decimal)):
                        if data__colno < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".colno must be bigger than or equal to 0.0",
                                value=data__colno,
                                name="" + (name_prefix or "data") + ".colno",
                                definition={
                                    "description": " Column number within the source file, starting at 1.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "context_line" in data_keys:
                    data_keys.remove("context_line")
                    data__contextline = data["context_line"]
                    if not isinstance(data__contextline, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".context_line must be string or null",
                            value=data__contextline,
                            name="" + (name_prefix or "data") + ".context_line",
                            definition={
                                "description": " Source code of the current line (`lineno`).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "filename" in data_keys:
                    data_keys.remove("filename")
                    data__filename = data["filename"]
                    data__filename_any_of_count50 = 0
                    if not data__filename_any_of_count50:
                        try:
                            validate___definitions_nativeimagepath(
                                data__filename,
                                custom_formats,
                                (name_prefix or "data") + ".filename",
                            )
                            data__filename_any_of_count50 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__filename_any_of_count50:
                        try:
                            if not isinstance(data__filename, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".filename must be null",
                                    value=data__filename,
                                    name="" + (name_prefix or "data") + ".filename",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__filename_any_of_count50 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__filename_any_of_count50:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".filename cannot be validated by any definition",
                            value=data__filename,
                            name="" + (name_prefix or "data") + ".filename",
                            definition={
                                "description": " The source file name (basename only).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "function" in data_keys:
                    data_keys.remove("function")
                    data__function = data["function"]
                    if not isinstance(data__function, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".function must be string or null",
                            value=data__function,
                            name="" + (name_prefix or "data") + ".function",
                            definition={
                                "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "function_id" in data_keys:
                    data_keys.remove("function_id")
                    data__functionid = data["function_id"]
                    data__functionid_any_of_count51 = 0
                    if not data__functionid_any_of_count51:
                        try:
                            validate___definitions_addr(
                                data__functionid,
                                custom_formats,
                                (name_prefix or "data") + ".function_id",
                            )
                            data__functionid_any_of_count51 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__functionid_any_of_count51:
                        try:
                            if not isinstance(data__functionid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".function_id must be null",
                                    value=data__functionid,
                                    name="" + (name_prefix or "data") + ".function_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__functionid_any_of_count51 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__functionid_any_of_count51:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".function_id cannot be validated by any definition",
                            value=data__functionid,
                            name="" + (name_prefix or "data") + ".function_id",
                            definition={
                                "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "image_addr" in data_keys:
                    data_keys.remove("image_addr")
                    data__imageaddr = data["image_addr"]
                    data__imageaddr_any_of_count52 = 0
                    if not data__imageaddr_any_of_count52:
                        try:
                            validate___definitions_addr(
                                data__imageaddr,
                                custom_formats,
                                (name_prefix or "data") + ".image_addr",
                            )
                            data__imageaddr_any_of_count52 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imageaddr_any_of_count52:
                        try:
                            if not isinstance(data__imageaddr, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".image_addr must be null",
                                    value=data__imageaddr,
                                    name="" + (name_prefix or "data") + ".image_addr",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__imageaddr_any_of_count52 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imageaddr_any_of_count52:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".image_addr cannot be validated by any definition",
                            value=data__imageaddr,
                            name="" + (name_prefix or "data") + ".image_addr",
                            definition={
                                "description": " (C/C++/Native) Start address of the containing code module (image).",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "in_app" in data_keys:
                    data_keys.remove("in_app")
                    data__inapp = data["in_app"]
                    if not isinstance(data__inapp, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".in_app must be boolean or null",
                            value=data__inapp,
                            name="" + (name_prefix or "data") + ".in_app",
                            definition={
                                "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "instruction_addr" in data_keys:
                    data_keys.remove("instruction_addr")
                    data__instructionaddr = data["instruction_addr"]
                    data__instructionaddr_any_of_count53 = 0
                    if not data__instructionaddr_any_of_count53:
                        try:
                            validate___definitions_addr(
                                data__instructionaddr,
                                custom_formats,
                                (name_prefix or "data") + ".instruction_addr",
                            )
                            data__instructionaddr_any_of_count53 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__instructionaddr_any_of_count53:
                        try:
                            if not isinstance(data__instructionaddr, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".instruction_addr must be null",
                                    value=data__instructionaddr,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".instruction_addr",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__instructionaddr_any_of_count53 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__instructionaddr_any_of_count53:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".instruction_addr cannot be validated by any definition",
                            value=data__instructionaddr,
                            name="" + (name_prefix or "data") + ".instruction_addr",
                            definition={
                                "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "lineno" in data_keys:
                    data_keys.remove("lineno")
                    data__lineno = data["lineno"]
                    if (
                        not isinstance(data__lineno, (int, NoneType))
                        and not (
                            isinstance(data__lineno, float)
                            and data__lineno.is_integer()
                        )
                        or isinstance(data__lineno, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".lineno must be integer or null",
                            value=data__lineno,
                            name="" + (name_prefix or "data") + ".lineno",
                            definition={
                                "description": " Line number within the source file, starting at 1.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__lineno, (int, float, Decimal)):
                        if data__lineno < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".lineno must be bigger than or equal to 0.0",
                                value=data__lineno,
                                name="" + (name_prefix or "data") + ".lineno",
                                definition={
                                    "description": " Line number within the source file, starting at 1.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "lock" in data_keys:
                    data_keys.remove("lock")
                    data__lock = data["lock"]
                    data__lock_any_of_count54 = 0
                    if not data__lock_any_of_count54:
                        try:
                            validate___definitions_lockreason(
                                data__lock,
                                custom_formats,
                                (name_prefix or "data") + ".lock",
                            )
                            data__lock_any_of_count54 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__lock_any_of_count54:
                        try:
                            if not isinstance(data__lock, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".lock must be null",
                                    value=data__lock,
                                    name="" + (name_prefix or "data") + ".lock",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__lock_any_of_count54 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__lock_any_of_count54:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".lock cannot be validated by any definition",
                            value=data__lock,
                            name="" + (name_prefix or "data") + ".lock",
                            definition={
                                "description": " A possible lock (java monitor object) held by this frame.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["type"],
                                                "properties": {
                                                    "address": {
                                                        "description": " Address of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "class_name": {
                                                        "description": " Class name of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "package_name": {
                                                        "description": " Package name of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "thread_id": {
                                                        "description": " Thread ID that's holding the lock.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/ThreadId"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "type": {
                                                        "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/LockReasonType"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "module" in data_keys:
                    data_keys.remove("module")
                    data__module = data["module"]
                    if not isinstance(data__module, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".module must be string or null",
                            value=data__module,
                            name="" + (name_prefix or "data") + ".module",
                            definition={
                                "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "package" in data_keys:
                    data_keys.remove("package")
                    data__package = data["package"]
                    if not isinstance(data__package, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".package must be string or null",
                            value=data__package,
                            name="" + (name_prefix or "data") + ".package",
                            definition={
                                "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "platform" in data_keys:
                    data_keys.remove("platform")
                    data__platform = data["platform"]
                    if not isinstance(data__platform, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".platform must be string or null",
                            value=data__platform,
                            name="" + (name_prefix or "data") + ".platform",
                            definition={
                                "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "post_context" in data_keys:
                    data_keys.remove("post_context")
                    data__postcontext = data["post_context"]
                    if not isinstance(data__postcontext, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".post_context must be array or null",
                            value=data__postcontext,
                            name="" + (name_prefix or "data") + ".post_context",
                            definition={
                                "description": " Source code of the lines after `lineno`.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            rule="type",
                        )
                    data__postcontext_is_list = isinstance(
                        data__postcontext, (list, tuple)
                    )
                    if data__postcontext_is_list:
                        data__postcontext_len = len(data__postcontext)
                        for data__postcontext_x, data__postcontext_item in enumerate(
                            data__postcontext
                        ):
                            if not isinstance(data__postcontext_item, (str, NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".post_context[{data__postcontext_x}]".format(
                                        **locals()
                                    )
                                    + " must be string or null",
                                    value=data__postcontext_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".post_context[{data__postcontext_x}]".format(
                                        **locals()
                                    )
                                    + "",
                                    definition={"type": ["string", "null"]},
                                    rule="type",
                                )
                if "pre_context" in data_keys:
                    data_keys.remove("pre_context")
                    data__precontext = data["pre_context"]
                    if not isinstance(data__precontext, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".pre_context must be array or null",
                            value=data__precontext,
                            name="" + (name_prefix or "data") + ".pre_context",
                            definition={
                                "description": " Source code leading up to `lineno`.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            rule="type",
                        )
                    data__precontext_is_list = isinstance(
                        data__precontext, (list, tuple)
                    )
                    if data__precontext_is_list:
                        data__precontext_len = len(data__precontext)
                        for data__precontext_x, data__precontext_item in enumerate(
                            data__precontext
                        ):
                            if not isinstance(data__precontext_item, (str, NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".pre_context[{data__precontext_x}]".format(
                                        **locals()
                                    )
                                    + " must be string or null",
                                    value=data__precontext_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".pre_context[{data__precontext_x}]".format(
                                        **locals()
                                    )
                                    + "",
                                    definition={"type": ["string", "null"]},
                                    rule="type",
                                )
                if "raw_function" in data_keys:
                    data_keys.remove("raw_function")
                    data__rawfunction = data["raw_function"]
                    if not isinstance(data__rawfunction, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".raw_function must be string or null",
                            value=data__rawfunction,
                            name="" + (name_prefix or "data") + ".raw_function",
                            definition={
                                "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "stack_start" in data_keys:
                    data_keys.remove("stack_start")
                    data__stackstart = data["stack_start"]
                    if not isinstance(data__stackstart, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".stack_start must be boolean or null",
                            value=data__stackstart,
                            name="" + (name_prefix or "data") + ".stack_start",
                            definition={
                                "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "symbol" in data_keys:
                    data_keys.remove("symbol")
                    data__symbol = data["symbol"]
                    if not isinstance(data__symbol, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".symbol must be string or null",
                            value=data__symbol,
                            name="" + (name_prefix or "data") + ".symbol",
                            definition={
                                "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "symbol_addr" in data_keys:
                    data_keys.remove("symbol_addr")
                    data__symboladdr = data["symbol_addr"]
                    data__symboladdr_any_of_count55 = 0
                    if not data__symboladdr_any_of_count55:
                        try:
                            validate___definitions_addr(
                                data__symboladdr,
                                custom_formats,
                                (name_prefix or "data") + ".symbol_addr",
                            )
                            data__symboladdr_any_of_count55 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__symboladdr_any_of_count55:
                        try:
                            if not isinstance(data__symboladdr, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".symbol_addr must be null",
                                    value=data__symboladdr,
                                    name="" + (name_prefix or "data") + ".symbol_addr",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__symboladdr_any_of_count55 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__symboladdr_any_of_count55:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".symbol_addr cannot be validated by any definition",
                            value=data__symboladdr,
                            name="" + (name_prefix or "data") + ".symbol_addr",
                            definition={
                                "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "vars" in data_keys:
                    data_keys.remove("vars")
                    data__vars = data["vars"]
                    data__vars_any_of_count56 = 0
                    if not data__vars_any_of_count56:
                        try:
                            validate___definitions_framevars(
                                data__vars,
                                custom_formats,
                                (name_prefix or "data") + ".vars",
                            )
                            data__vars_any_of_count56 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__vars_any_of_count56:
                        try:
                            if not isinstance(data__vars, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".vars must be null",
                                    value=data__vars,
                                    name="" + (name_prefix or "data") + ".vars",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__vars_any_of_count56 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__vars_any_of_count56:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".vars cannot be validated by any definition",
                            value=data__vars,
                            name="" + (name_prefix or "data") + ".vars",
                            definition={
                                "description": " Mapping of local variables and expression names that were available in this frame.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Frame local variables.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": True,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "abs_path": {
                                    "description": " Absolute path to the source file.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "addr_mode": {
                                    "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "colno": {
                                    "description": " Column number within the source file, starting at 1.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "context_line": {
                                    "description": " Source code of the current line (`lineno`).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "filename": {
                                    "description": " The source file name (basename only).",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "function": {
                                    "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "function_id": {
                                    "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "image_addr": {
                                    "description": " (C/C++/Native) Start address of the containing code module (image).",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "in_app": {
                                    "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "instruction_addr": {
                                    "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "lineno": {
                                    "description": " Line number within the source file, starting at 1.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "lock": {
                                    "description": " A possible lock (java monitor object) held by this frame.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["type"],
                                                    "properties": {
                                                        "address": {
                                                            "description": " Address of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "class_name": {
                                                            "description": " Class name of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "package_name": {
                                                            "description": " Package name of the java monitor object.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "thread_id": {
                                                            "description": " Thread ID that's holding the lock.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ThreadId"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "type": {
                                                            "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/LockReasonType"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "module": {
                                    "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "package": {
                                    "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "platform": {
                                    "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "post_context": {
                                    "description": " Source code of the lines after `lineno`.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {"type": ["string", "null"]},
                                },
                                "pre_context": {
                                    "description": " Source code leading up to `lineno`.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {"type": ["string", "null"]},
                                },
                                "raw_function": {
                                    "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "stack_start": {
                                    "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "symbol": {
                                    "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "symbol_addr": {
                                    "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "vars": {
                                    "description": " Mapping of local variables and expression names that were available in this frame.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Frame local variables.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "additionalProperties": True,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count48 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count48:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Holds information about a single stacktrace frame.\n\n Each object should contain **at least** a `filename`, `function` or `instruction_addr`\n attribute. All values are optional, but recommended.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "abs_path": {
                                "description": " Absolute path to the source file.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "addr_mode": {
                                "description": ' Defines the addressing mode for addresses.\n\n This can be:\n - `"abs"` (the default): `instruction_addr` is absolute.\n - `"rel:$idx"`: `instruction_addr` is relative to the `debug_meta.image` identified by its index in the list.\n - `"rel:$uuid"`: `instruction_addr` is relative to the `debug_meta.image` identified by its `debug_id`.\n\n If one of the `"rel:XXX"` variants is given together with `function_id`, the `instruction_addr` is relative\n to the uniquely identified function in the references `debug_meta.image`.',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "colno": {
                                "description": " Column number within the source file, starting at 1.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "context_line": {
                                "description": " Source code of the current line (`lineno`).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "filename": {
                                "description": " The source file name (basename only).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "function": {
                                "description": " Name of the frame's function. This might include the name of a class.\n\n This function name may be shortened or demangled. If not, Sentry will demangle and shorten\n it for some platforms. The original function name will be stored in `raw_function`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "function_id": {
                                "description": " (.NET) The function id / index that uniquely identifies a function inside a module.\n\n This is the `MetadataToken` of a .NET `MethodBase`.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "image_addr": {
                                "description": " (C/C++/Native) Start address of the containing code module (image).",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "in_app": {
                                "description": " Override whether this frame should be considered part of application code, or part of\n libraries/frameworks/dependencies.\n\n Setting this attribute to `false` causes the frame to be hidden/collapsed by default and\n mostly ignored during issue grouping.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "instruction_addr": {
                                "description": " (C/C++/Native) An optional instruction address for symbolication.\n\n This should be a string with a hexadecimal number that includes a 0x prefix.\n If this is set and a known image is defined in the\n [Debug Meta Interface]({%- link _documentation/development/sdk-dev/event-payloads/debugmeta.md -%}),\n then symbolication can take place.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "lineno": {
                                "description": " Line number within the source file, starting at 1.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "lock": {
                                "description": " A possible lock (java monitor object) held by this frame.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents an instance of a held lock (java monitor object) in a thread.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["type"],
                                                "properties": {
                                                    "address": {
                                                        "description": " Address of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "class_name": {
                                                        "description": " Class name of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "package_name": {
                                                        "description": " Package name of the java monitor object.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "thread_id": {
                                                        "description": " Thread ID that's holding the lock.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/ThreadId"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "type": {
                                                        "description": " Type of lock on the thread with available options being blocked, waiting, sleeping and locked.",
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/LockReasonType"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "module": {
                                "description": " Name of the module the frame is contained in.\n\n Note that this might also include a class name if that is something the\n language natively considers to be part of the stack (for instance in Java).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "package": {
                                "description": " Name of the package that contains the frame.\n\n For instance this can be a dylib for native languages, the name of the jar\n or .NET assembly.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "platform": {
                                "description": " Which platform this frame is from.\n\n This can override the platform for a single frame. Otherwise, the platform of the event is\n assumed. This can be used for multi-platform stack traces, such as in React Native.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "post_context": {
                                "description": " Source code of the lines after `lineno`.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            "pre_context": {
                                "description": " Source code leading up to `lineno`.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            "raw_function": {
                                "description": " A raw (but potentially truncated) function value.\n\n The original function name, if the function name is shortened or demangled. Sentry shows the\n raw function when clicking on the shortened one in the UI.\n\n If this has the same value as `function` it's best to be omitted.  This exists because on\n many platforms the function itself contains additional information like overload specifies\n or a lot of generics which can make it exceed the maximum limit we provide for the field.\n In those cases then we cannot reliably trim down the function any more at a later point\n because the more valuable information has been removed.\n\n The logic to be applied is that an intelligently trimmed function name should be stored in\n `function` and the value before trimming is stored in this field instead.  However also this\n field will be capped at 256 characters at the moment which often means that not the entire\n original value can be stored.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "stack_start": {
                                "description": " Marks this frame as the bottom of a chained stack trace.\n\n Stack traces from asynchronous code consist of several sub traces that are chained together\n into one large list. This flag indicates the root function of a chained stack trace.\n Depending on the runtime and thread, this is either the `main` function or a thread base\n stub.\n\n This field should only be specified when true.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "symbol": {
                                "description": " Potentially mangled name of the symbol as it appears in an executable.\n\n This is different from a function name by generally being the mangled\n name that appears natively in the binary.  This is relevant for languages\n like Swift, C++ or Rust.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "symbol_addr": {
                                "description": " (C/C++/Native) Start address of the frame's function.\n\n We use the instruction address for symbolication, but this can be used to calculate\n an instruction offset automatically.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "vars": {
                                "description": " Mapping of local variables and expression names that were available in this frame.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Frame local variables.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": True,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_framevars(data, custom_formats={}, name_prefix=None):
    data_any_of_count57 = 0
    if not data_any_of_count57:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "object", "additionalProperties": True},
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
            data_any_of_count57 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count57:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Frame local variables.",
                "anyOf": [{"type": "object", "additionalProperties": True}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_addr(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={"type": "string"},
            rule="type",
        )
    return data


def validate___definitions_nativeimagepath(data, custom_formats={}, name_prefix=None):
    data_any_of_count58 = 0
    if not data_any_of_count58:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count58 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count58:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                "anyOf": [{"type": "string"}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_clientsdkinfo(data, custom_formats={}, name_prefix=None):
    data_any_of_count59 = 0
    if not data_any_of_count59:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["name", "version"],
                        "properties": {
                            "features": {
                                "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            "integrations": {
                                "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            "name": {
                                "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                "type": ["string", "null"],
                            },
                            "packages": {
                                "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " An installed and loaded package as part of the Sentry SDK.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "name": {
                                                            "description": " Name of the package.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "version": {
                                                            "description": " Version of the package.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "version": {
                                "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["name", "version"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["name", "version"],
                            "properties": {
                                "features": {
                                    "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {"type": ["string", "null"]},
                                },
                                "integrations": {
                                    "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {"type": ["string", "null"]},
                                },
                                "name": {
                                    "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                    "type": ["string", "null"],
                                },
                                "packages": {
                                    "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {
                                        "anyOf": [
                                            {
                                                "description": " An installed and loaded package as part of the Sentry SDK.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "name": {
                                                                "description": " Name of the package.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "version": {
                                                                "description": " Version of the package.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                },
                                "version": {
                                    "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "features" in data_keys:
                    data_keys.remove("features")
                    data__features = data["features"]
                    if not isinstance(data__features, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".features must be array or null",
                            value=data__features,
                            name="" + (name_prefix or "data") + ".features",
                            definition={
                                "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            rule="type",
                        )
                    data__features_is_list = isinstance(data__features, (list, tuple))
                    if data__features_is_list:
                        data__features_len = len(data__features)
                        for data__features_x, data__features_item in enumerate(
                            data__features
                        ):
                            if not isinstance(data__features_item, (str, NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".features[{data__features_x}]".format(**locals())
                                    + " must be string or null",
                                    value=data__features_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".features[{data__features_x}]".format(**locals())
                                    + "",
                                    definition={"type": ["string", "null"]},
                                    rule="type",
                                )
                if "integrations" in data_keys:
                    data_keys.remove("integrations")
                    data__integrations = data["integrations"]
                    if not isinstance(data__integrations, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".integrations must be array or null",
                            value=data__integrations,
                            name="" + (name_prefix or "data") + ".integrations",
                            definition={
                                "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            rule="type",
                        )
                    data__integrations_is_list = isinstance(
                        data__integrations, (list, tuple)
                    )
                    if data__integrations_is_list:
                        data__integrations_len = len(data__integrations)
                        for data__integrations_x, data__integrations_item in enumerate(
                            data__integrations
                        ):
                            if not isinstance(data__integrations_item, (str, NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".integrations[{data__integrations_x}]".format(
                                        **locals()
                                    )
                                    + " must be string or null",
                                    value=data__integrations_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".integrations[{data__integrations_x}]".format(
                                        **locals()
                                    )
                                    + "",
                                    definition={"type": ["string", "null"]},
                                    rule="type",
                                )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "packages" in data_keys:
                    data_keys.remove("packages")
                    data__packages = data["packages"]
                    if not isinstance(data__packages, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".packages must be array or null",
                            value=data__packages,
                            name="" + (name_prefix or "data") + ".packages",
                            definition={
                                "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " An installed and loaded package as part of the Sentry SDK.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "name": {
                                                            "description": " Name of the package.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "version": {
                                                            "description": " Version of the package.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            rule="type",
                        )
                    data__packages_is_list = isinstance(data__packages, (list, tuple))
                    if data__packages_is_list:
                        data__packages_len = len(data__packages)
                        for data__packages_x, data__packages_item in enumerate(
                            data__packages
                        ):
                            data__packages_item_any_of_count60 = 0
                            if not data__packages_item_any_of_count60:
                                try:
                                    validate___definitions_clientsdkpackage(
                                        data__packages_item,
                                        custom_formats,
                                        (name_prefix or "data")
                                        + ".packages[{data__packages_x}]".format(
                                            **locals()
                                        ),
                                    )
                                    data__packages_item_any_of_count60 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__packages_item_any_of_count60:
                                try:
                                    if not isinstance(data__packages_item, (NoneType)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".packages[{data__packages_x}]".format(
                                                **locals()
                                            )
                                            + " must be null",
                                            value=data__packages_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".packages[{data__packages_x}]".format(
                                                **locals()
                                            )
                                            + "",
                                            definition={"type": "null"},
                                            rule="type",
                                        )
                                    data__packages_item_any_of_count60 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__packages_item_any_of_count60:
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".packages[{data__packages_x}]".format(**locals())
                                    + " cannot be validated by any definition",
                                    value=data__packages_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".packages[{data__packages_x}]".format(**locals())
                                    + "",
                                    definition={
                                        "anyOf": [
                                            {
                                                "description": " An installed and loaded package as part of the Sentry SDK.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "name": {
                                                                "description": " Name of the package.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "version": {
                                                                "description": " Version of the package.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                    rule="anyOf",
                                )
                if "version" in data_keys:
                    data_keys.remove("version")
                    data__version = data["version"]
                    if not isinstance(data__version, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version must be string or null",
                            value=data__version,
                            name="" + (name_prefix or "data") + ".version",
                            definition={
                                "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["name", "version"],
                            "properties": {
                                "features": {
                                    "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {"type": ["string", "null"]},
                                },
                                "integrations": {
                                    "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {"type": ["string", "null"]},
                                },
                                "name": {
                                    "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                    "type": ["string", "null"],
                                },
                                "packages": {
                                    "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {
                                        "anyOf": [
                                            {
                                                "description": " An installed and loaded package as part of the Sentry SDK.",
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "properties": {
                                                            "name": {
                                                                "description": " Name of the package.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                            "version": {
                                                                "description": " Version of the package.",
                                                                "default": None,
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ],
                                                            },
                                                        },
                                                        "additionalProperties": False,
                                                    }
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                },
                                "version": {
                                    "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count59 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count59:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " The SDK Interface describes the Sentry SDK and its configuration used to capture and transmit an event.",
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["name", "version"],
                        "properties": {
                            "features": {
                                "description": " List of features that are enabled in the SDK. _Optional._\n\n A list of feature names identifying enabled SDK features. This list\n should contain all enabled SDK features. On some SDKs, enabling a feature in the\n options also adds an integration. We encourage tracking such features with either\n integrations or features but not both to reduce the payload size.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            "integrations": {
                                "description": " List of integrations that are enabled in the SDK. _Optional._\n\n The list should have all enabled integrations, including default integrations. Default\n integrations are included because different SDK releases may contain different default\n integrations.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            "name": {
                                "description": " Unique SDK name. _Required._\n\n The name of the SDK. The format is `entity.ecosystem[.flavor]` where entity identifies the\n developer of the SDK, ecosystem refers to the programming language or platform where the\n SDK is to be used and the optional flavor is used to identify standalone SDKs that are part\n of a major ecosystem.\n\n Official Sentry SDKs use the entity `sentry`, as in `sentry.python` or\n `sentry.javascript.react-native`. Please use a different entity for your own SDKs.",
                                "type": ["string", "null"],
                            },
                            "packages": {
                                "description": " List of installed and loaded SDK packages. _Optional._\n\n A list of packages that were installed as part of this SDK or the activated integrations.\n Each package consists of a name in the format `source:identifier` and `version`. If the\n source is a Git repository, the `source` should be `git`, the identifier should be a\n checkout link and the version should be a Git reference (branch, tag or SHA).",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " An installed and loaded package as part of the Sentry SDK.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "name": {
                                                            "description": " Name of the package.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "version": {
                                                            "description": " Version of the package.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "version": {
                                "description": " The version of the SDK. _Required._\n\n It should have the [Semantic Versioning](https://semver.org/) format `MAJOR.MINOR.PATCH`,\n without any prefix (no `v` or anything else in front of the major version number).\n\n Examples: `0.1.0`, `1.0.0`, `4.3.12`",
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_clientsdkpackage(data, custom_formats={}, name_prefix=None):
    data_any_of_count61 = 0
    if not data_any_of_count61:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " Name of the package.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " Version of the package.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Name of the package.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "version" in data_keys:
                    data_keys.remove("version")
                    data__version = data["version"]
                    if not isinstance(data__version, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version must be string or null",
                            value=data__version,
                            name="" + (name_prefix or "data") + ".version",
                            definition={
                                "description": " Version of the package.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "name": {
                                    "description": " Name of the package.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "version": {
                                    "description": " Version of the package.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count61 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count61:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " An installed and loaded package as part of the Sentry SDK.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " Name of the package.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " Version of the package.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_request(data, custom_formats={}, name_prefix=None):
    data_any_of_count62 = 0
    if not data_any_of_count62:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "api_target": {
                                "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "body_size": {
                                "description": " HTTP request body size.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "cookies": {
                                "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding cookies.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "data": {
                                "description": " Request data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                "default": None,
                            },
                            "env": {
                                "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "fragment": {
                                "description": " The fragment of the request URI.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "headers": {
                                "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding headers.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/HeaderValue"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderName"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderValue"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "inferred_content_type": {
                                "description": " The inferred content type of the request payload.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "method": {
                                "description": " HTTP request method.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "protocol": {
                                "description": " HTTP protocol.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "query_string": {
                                "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"type": "string"},
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            },
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "url": {
                                "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "api_target" in data_keys:
                    data_keys.remove("api_target")
                    data__apitarget = data["api_target"]
                    if not isinstance(data__apitarget, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".api_target must be string or null",
                            value=data__apitarget,
                            name="" + (name_prefix or "data") + ".api_target",
                            definition={
                                "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "body_size" in data_keys:
                    data_keys.remove("body_size")
                    data__bodysize = data["body_size"]
                    if (
                        not isinstance(data__bodysize, (int, NoneType))
                        and not (
                            isinstance(data__bodysize, float)
                            and data__bodysize.is_integer()
                        )
                        or isinstance(data__bodysize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".body_size must be integer or null",
                            value=data__bodysize,
                            name="" + (name_prefix or "data") + ".body_size",
                            definition={
                                "description": " HTTP request body size.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__bodysize, (int, float, Decimal)):
                        if data__bodysize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".body_size must be bigger than or equal to 0.0",
                                value=data__bodysize,
                                name="" + (name_prefix or "data") + ".body_size",
                                definition={
                                    "description": " HTTP request body size.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "cookies" in data_keys:
                    data_keys.remove("cookies")
                    data__cookies = data["cookies"]
                    data__cookies_any_of_count63 = 0
                    if not data__cookies_any_of_count63:
                        try:
                            validate___definitions_cookies(
                                data__cookies,
                                custom_formats,
                                (name_prefix or "data") + ".cookies",
                            )
                            data__cookies_any_of_count63 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__cookies_any_of_count63:
                        try:
                            if not isinstance(data__cookies, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".cookies must be null",
                                    value=data__cookies,
                                    name="" + (name_prefix or "data") + ".cookies",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__cookies_any_of_count63 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__cookies_any_of_count63:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cookies cannot be validated by any definition",
                            value=data__cookies,
                            name="" + (name_prefix or "data") + ".cookies",
                            definition={
                                "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding cookies.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "data" in data_keys:
                    data_keys.remove("data")
                    data__data = data["data"]
                if "env" in data_keys:
                    data_keys.remove("env")
                    data__env = data["env"]
                    if not isinstance(data__env, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".env must be object or null",
                            value=data__env,
                            name="" + (name_prefix or "data") + ".env",
                            definition={
                                "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            rule="type",
                        )
                    data__env_is_dict = isinstance(data__env, dict)
                    if data__env_is_dict:
                        data__env_keys = set(data__env.keys())
                if "fragment" in data_keys:
                    data_keys.remove("fragment")
                    data__fragment = data["fragment"]
                    if not isinstance(data__fragment, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".fragment must be string or null",
                            value=data__fragment,
                            name="" + (name_prefix or "data") + ".fragment",
                            definition={
                                "description": " The fragment of the request URI.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "headers" in data_keys:
                    data_keys.remove("headers")
                    data__headers = data["headers"]
                    data__headers_any_of_count64 = 0
                    if not data__headers_any_of_count64:
                        try:
                            validate___definitions_headers(
                                data__headers,
                                custom_formats,
                                (name_prefix or "data") + ".headers",
                            )
                            data__headers_any_of_count64 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__headers_any_of_count64:
                        try:
                            if not isinstance(data__headers, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".headers must be null",
                                    value=data__headers,
                                    name="" + (name_prefix or "data") + ".headers",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__headers_any_of_count64 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__headers_any_of_count64:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".headers cannot be validated by any definition",
                            value=data__headers,
                            name="" + (name_prefix or "data") + ".headers",
                            definition={
                                "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding headers.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/HeaderValue"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderName"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderValue"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "inferred_content_type" in data_keys:
                    data_keys.remove("inferred_content_type")
                    data__inferredcontenttype = data["inferred_content_type"]
                    if not isinstance(data__inferredcontenttype, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".inferred_content_type must be string or null",
                            value=data__inferredcontenttype,
                            name=""
                            + (name_prefix or "data")
                            + ".inferred_content_type",
                            definition={
                                "description": " The inferred content type of the request payload.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "method" in data_keys:
                    data_keys.remove("method")
                    data__method = data["method"]
                    if not isinstance(data__method, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".method must be string or null",
                            value=data__method,
                            name="" + (name_prefix or "data") + ".method",
                            definition={
                                "description": " HTTP request method.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "protocol" in data_keys:
                    data_keys.remove("protocol")
                    data__protocol = data["protocol"]
                    if not isinstance(data__protocol, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".protocol must be string or null",
                            value=data__protocol,
                            name="" + (name_prefix or "data") + ".protocol",
                            definition={
                                "description": " HTTP protocol.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "query_string" in data_keys:
                    data_keys.remove("query_string")
                    data__querystring = data["query_string"]
                    data__querystring_any_of_count65 = 0
                    if not data__querystring_any_of_count65:
                        try:
                            data__querystring_any_of_count66 = 0
                            if not data__querystring_any_of_count66:
                                try:
                                    if not isinstance(data__querystring, (str)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".query_string must be string",
                                            value=data__querystring,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".query_string",
                                            definition={"type": "string"},
                                            rule="type",
                                        )
                                    data__querystring_any_of_count66 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__querystring_any_of_count66:
                                try:
                                    data__querystring_any_of_count67 = 0
                                    if not data__querystring_any_of_count67:
                                        try:
                                            if not isinstance(
                                                data__querystring, (dict)
                                            ):
                                                raise JsonSchemaValueException(
                                                    ""
                                                    + (name_prefix or "data")
                                                    + ".query_string must be object",
                                                    value=data__querystring,
                                                    name=""
                                                    + (name_prefix or "data")
                                                    + ".query_string",
                                                    definition={
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    rule="type",
                                                )
                                            data__querystring_is_dict = isinstance(
                                                data__querystring, dict
                                            )
                                            if data__querystring_is_dict:
                                                data__querystring_keys = set(
                                                    data__querystring.keys()
                                                )
                                                for (
                                                    data__querystring_key
                                                ) in data__querystring_keys:
                                                    if data__querystring_key not in []:
                                                        data__querystring_value = (
                                                            data__querystring.get(
                                                                data__querystring_key
                                                            )
                                                        )
                                                        if not isinstance(
                                                            data__querystring_value,
                                                            (str, NoneType),
                                                        ):
                                                            raise JsonSchemaValueException(
                                                                ""
                                                                + (
                                                                    name_prefix
                                                                    or "data"
                                                                )
                                                                + ".query_string.{data__querystring_key}".format(
                                                                    **locals()
                                                                )
                                                                + " must be string or null",
                                                                value=data__querystring_value,
                                                                name=""
                                                                + (
                                                                    name_prefix
                                                                    or "data"
                                                                )
                                                                + ".query_string.{data__querystring_key}".format(
                                                                    **locals()
                                                                )
                                                                + "",
                                                                definition={
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                rule="type",
                                                            )
                                            data__querystring_any_of_count67 += 1
                                        except JsonSchemaValueException:
                                            pass
                                    if not data__querystring_any_of_count67:
                                        try:
                                            if not isinstance(
                                                data__querystring, (list, tuple)
                                            ):
                                                raise JsonSchemaValueException(
                                                    ""
                                                    + (name_prefix or "data")
                                                    + ".query_string must be array",
                                                    value=data__querystring,
                                                    name=""
                                                    + (name_prefix or "data")
                                                    + ".query_string",
                                                    definition={
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                    rule="type",
                                                )
                                            data__querystring_is_list = isinstance(
                                                data__querystring, (list, tuple)
                                            )
                                            if data__querystring_is_list:
                                                data__querystring_len = len(
                                                    data__querystring
                                                )
                                                for (
                                                    data__querystring_x,
                                                    data__querystring_item,
                                                ) in enumerate(data__querystring):
                                                    if not isinstance(
                                                        data__querystring_item,
                                                        (list, tuple, NoneType),
                                                    ):
                                                        raise JsonSchemaValueException(
                                                            ""
                                                            + (name_prefix or "data")
                                                            + ".query_string[{data__querystring_x}]".format(
                                                                **locals()
                                                            )
                                                            + " must be array or null",
                                                            value=data__querystring_item,
                                                            name=""
                                                            + (name_prefix or "data")
                                                            + ".query_string[{data__querystring_x}]".format(
                                                                **locals()
                                                            )
                                                            + "",
                                                            definition={
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": [
                                                                    {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                ],
                                                                "maxItems": 2,
                                                                "minItems": 2,
                                                            },
                                                            rule="type",
                                                        )
                                                    data__querystring_item_is_list = (
                                                        isinstance(
                                                            data__querystring_item,
                                                            (list, tuple),
                                                        )
                                                    )
                                                    if data__querystring_item_is_list:
                                                        data__querystring_item_len = (
                                                            len(data__querystring_item)
                                                        )
                                                        if (
                                                            data__querystring_item_len
                                                            < 2
                                                        ):
                                                            raise JsonSchemaValueException(
                                                                ""
                                                                + (
                                                                    name_prefix
                                                                    or "data"
                                                                )
                                                                + ".query_string[{data__querystring_x}]".format(
                                                                    **locals()
                                                                )
                                                                + " must contain at least 2 items",
                                                                value=data__querystring_item,
                                                                name=""
                                                                + (
                                                                    name_prefix
                                                                    or "data"
                                                                )
                                                                + ".query_string[{data__querystring_x}]".format(
                                                                    **locals()
                                                                )
                                                                + "",
                                                                definition={
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": [
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                    ],
                                                                    "maxItems": 2,
                                                                    "minItems": 2,
                                                                },
                                                                rule="minItems",
                                                            )
                                                        if (
                                                            data__querystring_item_len
                                                            > 2
                                                        ):
                                                            raise JsonSchemaValueException(
                                                                ""
                                                                + (
                                                                    name_prefix
                                                                    or "data"
                                                                )
                                                                + ".query_string[{data__querystring_x}]".format(
                                                                    **locals()
                                                                )
                                                                + " must contain less than or equal to 2 items",
                                                                value=data__querystring_item,
                                                                name=""
                                                                + (
                                                                    name_prefix
                                                                    or "data"
                                                                )
                                                                + ".query_string[{data__querystring_x}]".format(
                                                                    **locals()
                                                                )
                                                                + "",
                                                                definition={
                                                                    "type": [
                                                                        "array",
                                                                        "null",
                                                                    ],
                                                                    "items": [
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                        {
                                                                            "type": [
                                                                                "string",
                                                                                "null",
                                                                            ]
                                                                        },
                                                                    ],
                                                                    "maxItems": 2,
                                                                    "minItems": 2,
                                                                },
                                                                rule="maxItems",
                                                            )
                                                        if (
                                                            data__querystring_item_len
                                                            > 0
                                                        ):
                                                            data__querystring_item__0 = data__querystring_item[
                                                                0
                                                            ]
                                                            if not isinstance(
                                                                data__querystring_item__0,
                                                                (str, NoneType),
                                                            ):
                                                                raise JsonSchemaValueException(
                                                                    ""
                                                                    + (
                                                                        name_prefix
                                                                        or "data"
                                                                    )
                                                                    + ".query_string[{data__querystring_x}][0]".format(
                                                                        **locals()
                                                                    )
                                                                    + " must be string or null",
                                                                    value=data__querystring_item__0,
                                                                    name=""
                                                                    + (
                                                                        name_prefix
                                                                        or "data"
                                                                    )
                                                                    + ".query_string[{data__querystring_x}][0]".format(
                                                                        **locals()
                                                                    )
                                                                    + "",
                                                                    definition={
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                    rule="type",
                                                                )
                                                        if (
                                                            data__querystring_item_len
                                                            > 1
                                                        ):
                                                            data__querystring_item__1 = data__querystring_item[
                                                                1
                                                            ]
                                                            if not isinstance(
                                                                data__querystring_item__1,
                                                                (str, NoneType),
                                                            ):
                                                                raise JsonSchemaValueException(
                                                                    ""
                                                                    + (
                                                                        name_prefix
                                                                        or "data"
                                                                    )
                                                                    + ".query_string[{data__querystring_x}][1]".format(
                                                                        **locals()
                                                                    )
                                                                    + " must be string or null",
                                                                    value=data__querystring_item__1,
                                                                    name=""
                                                                    + (
                                                                        name_prefix
                                                                        or "data"
                                                                    )
                                                                    + ".query_string[{data__querystring_x}][1]".format(
                                                                        **locals()
                                                                    )
                                                                    + "",
                                                                    definition={
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                    rule="type",
                                                                )
                                            data__querystring_any_of_count67 += 1
                                        except JsonSchemaValueException:
                                            pass
                                    if not data__querystring_any_of_count67:
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".query_string cannot be validated by any definition",
                                            value=data__querystring,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".query_string",
                                            definition={
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            },
                                            rule="anyOf",
                                        )
                                    data__querystring_any_of_count66 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__querystring_any_of_count66:
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".query_string cannot be validated by any definition",
                                    value=data__querystring,
                                    name="" + (name_prefix or "data") + ".query_string",
                                    definition={
                                        "anyOf": [
                                            {"type": "string"},
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            },
                                        ]
                                    },
                                    rule="anyOf",
                                )
                            data__querystring_any_of_count65 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__querystring_any_of_count65:
                        try:
                            if not isinstance(data__querystring, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".query_string must be null",
                                    value=data__querystring,
                                    name="" + (name_prefix or "data") + ".query_string",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__querystring_any_of_count65 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__querystring_any_of_count65:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".query_string cannot be validated by any definition",
                            value=data__querystring,
                            name="" + (name_prefix or "data") + ".query_string",
                            definition={
                                "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"type": "string"},
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            },
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "url" in data_keys:
                    data_keys.remove("url")
                    data__url = data["url"]
                    if not isinstance(data__url, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".url must be string or null",
                            value=data__url,
                            name="" + (name_prefix or "data") + ".url",
                            definition={
                                "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "api_target": {
                                    "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "body_size": {
                                    "description": " HTTP request body size.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "cookies": {
                                    "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A map holding cookies.",
                                            "anyOf": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "additionalProperties": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": [
                                                                    {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                ],
                                                                "maxItems": 2,
                                                                "minItems": 2,
                                                            },
                                                        },
                                                    ]
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "data": {
                                    "description": " Request data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                    "default": None,
                                },
                                "env": {
                                    "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                                "fragment": {
                                    "description": " The fragment of the request URI.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "headers": {
                                    "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A map holding headers.",
                                            "anyOf": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "additionalProperties": {
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/HeaderValue"
                                                                    },
                                                                    {"type": "null"},
                                                                ]
                                                            },
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": [
                                                                    {
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/HeaderName"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ]
                                                                    },
                                                                    {
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/HeaderValue"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ]
                                                                    },
                                                                ],
                                                                "maxItems": 2,
                                                                "minItems": 2,
                                                            },
                                                        },
                                                    ]
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "inferred_content_type": {
                                    "description": " The inferred content type of the request payload.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "method": {
                                    "description": " HTTP request method.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "protocol": {
                                    "description": " HTTP protocol.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "query_string": {
                                    "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {"type": "string"},
                                                {
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "additionalProperties": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": [
                                                                    {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                ],
                                                                "maxItems": 2,
                                                                "minItems": 2,
                                                            },
                                                        },
                                                    ]
                                                },
                                            ]
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "url": {
                                    "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count62 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count62:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' Http request information.\n\n The Request interface contains information on a HTTP request related to the event. In client\n SDKs, this can be an outgoing request, or the request that rendered the current web page. On\n server SDKs, this could be the incoming web request that is being handled.\n\n The data variable should only contain the request body (not the query string). It can either be\n a dictionary (for standard HTTP requests) or a raw request body.\n\n ### Ordered Maps\n\n In the Request interface, several attributes can either be declared as string, object, or list\n of tuples. Sentry attempts to parse structured information from the string representation in\n such cases.\n\n Sometimes, keys can be declared multiple times, or the order of elements matters. In such\n cases, use the tuple representation over a plain object.\n\n Example of request headers as object:\n\n ```json\n {\n   "content-type": "application/json",\n   "accept": "application/json, application/xml"\n }\n ```\n\n Example of the same headers as list of tuples:\n\n ```json\n [\n   ["content-type", "application/json"],\n   ["accept", "application/json"],\n   ["accept", "application/xml"]\n ]\n ```\n\n Example of a fully populated request object:\n\n ```json\n {\n   "request": {\n     "method": "POST",\n     "url": "http://absolute.uri/foo",\n     "query_string": "query=foobar&page=2",\n     "data": {\n       "foo": "bar"\n     },\n     "cookies": "PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;",\n     "headers": {\n       "content-type": "text/html"\n     },\n     "env": {\n       "REMOTE_ADDR": "192.168.0.1"\n     }\n   }\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "api_target": {
                                "description": " The API target/specification that made the request.\n\n Values can be `graphql`, `rest`, etc.\n\n The data field should contain the request and response bodies based on its target specification.\n\n This information can be used for better data scrubbing and normalization.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "body_size": {
                                "description": " HTTP request body size.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "cookies": {
                                "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding cookies.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "data": {
                                "description": " Request data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                "default": None,
                            },
                            "env": {
                                "description": " Server environment data, such as CGI/WSGI.\n\n A dictionary containing environment information passed from the server. This is where\n information such as CGI/WSGI/Rack keys go that are not HTTP headers.\n\n Sentry will explicitly look for `REMOTE_ADDR` to extract an IP address.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "fragment": {
                                "description": " The fragment of the request URI.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "headers": {
                                "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding headers.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/HeaderValue"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderName"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderValue"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "inferred_content_type": {
                                "description": " The inferred content type of the request payload.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "method": {
                                "description": " HTTP request method.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "protocol": {
                                "description": " HTTP protocol.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "query_string": {
                                "description": " The query string component of the URL.\n\n Can be given as unparsed string, dictionary, or list of tuples.\n\n If the query string is not declared and part of the `url`, Sentry moves it to the\n query string.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"type": "string"},
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            },
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "url": {
                                "description": " The URL of the request if available.\n\nThe query string can be declared either as part of the `url`, or separately in `query_string`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_headers(data, custom_formats={}, name_prefix=None):
    data_any_of_count68 = 0
    if not data_any_of_count68:
        try:
            data_any_of_count69 = 0
            if not data_any_of_count69:
                try:
                    if not isinstance(data, (dict)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + " must be object",
                            value=data,
                            name="" + (name_prefix or "data") + "",
                            definition={
                                "type": "object",
                                "additionalProperties": {
                                    "anyOf": [
                                        {
                                            "description": ' A "into-string" type that normalizes header values.',
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            rule="type",
                        )
                    data_is_dict = isinstance(data, dict)
                    if data_is_dict:
                        data_keys = set(data.keys())
                        for data_key in data_keys:
                            if data_key not in []:
                                data_value = data.get(data_key)
                                data_value_any_of_count70 = 0
                                if not data_value_any_of_count70:
                                    try:
                                        validate___definitions_headervalue(
                                            data_value,
                                            custom_formats,
                                            (name_prefix or "data")
                                            + ".{data_key}".format(**locals()),
                                        )
                                        data_value_any_of_count70 += 1
                                    except JsonSchemaValueException:
                                        pass
                                if not data_value_any_of_count70:
                                    try:
                                        if not isinstance(data_value, (NoneType)):
                                            raise JsonSchemaValueException(
                                                ""
                                                + (name_prefix or "data")
                                                + ".{data_key}".format(**locals())
                                                + " must be null",
                                                value=data_value,
                                                name=""
                                                + (name_prefix or "data")
                                                + ".{data_key}".format(**locals())
                                                + "",
                                                definition={"type": "null"},
                                                rule="type",
                                            )
                                        data_value_any_of_count70 += 1
                                    except JsonSchemaValueException:
                                        pass
                                if not data_value_any_of_count70:
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + ".{data_key}".format(**locals())
                                        + " cannot be validated by any definition",
                                        value=data_value,
                                        name=""
                                        + (name_prefix or "data")
                                        + ".{data_key}".format(**locals())
                                        + "",
                                        definition={
                                            "anyOf": [
                                                {
                                                    "description": ' A "into-string" type that normalizes header values.',
                                                    "anyOf": [{"type": "string"}],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                        rule="anyOf",
                                    )
                    data_any_of_count69 += 1
                except JsonSchemaValueException:
                    pass
            if not data_any_of_count69:
                try:
                    if not isinstance(data, (list, tuple)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + " must be array",
                            value=data,
                            name="" + (name_prefix or "data") + "",
                            definition={
                                "type": "array",
                                "items": {
                                    "type": ["array", "null"],
                                    "items": [
                                        {
                                            "anyOf": [
                                                {
                                                    "description": ' A "into-string" type that normalizes header names.',
                                                    "anyOf": [{"type": "string"}],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                        {
                                            "anyOf": [
                                                {
                                                    "description": ' A "into-string" type that normalizes header values.',
                                                    "anyOf": [{"type": "string"}],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    ],
                                    "maxItems": 2,
                                    "minItems": 2,
                                },
                            },
                            rule="type",
                        )
                    data_is_list = isinstance(data, (list, tuple))
                    if data_is_list:
                        data_len = len(data)
                        for data_x, data_item in enumerate(data):
                            if not isinstance(data_item, (list, tuple, NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + "[{data_x}]".format(**locals())
                                    + " must be array or null",
                                    value=data_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + "[{data_x}]".format(**locals())
                                    + "",
                                    definition={
                                        "type": ["array", "null"],
                                        "items": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "description": ' A "into-string" type that normalizes header names.',
                                                        "anyOf": [{"type": "string"}],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                            {
                                                "anyOf": [
                                                    {
                                                        "description": ' A "into-string" type that normalizes header values.',
                                                        "anyOf": [{"type": "string"}],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                        ],
                                        "maxItems": 2,
                                        "minItems": 2,
                                    },
                                    rule="type",
                                )
                            data_item_is_list = isinstance(data_item, (list, tuple))
                            if data_item_is_list:
                                data_item_len = len(data_item)
                                if data_item_len < 2:
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + "[{data_x}]".format(**locals())
                                        + " must contain at least 2 items",
                                        value=data_item,
                                        name=""
                                        + (name_prefix or "data")
                                        + "[{data_x}]".format(**locals())
                                        + "",
                                        definition={
                                            "type": ["array", "null"],
                                            "items": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "description": ' A "into-string" type that normalizes header names.',
                                                            "anyOf": [
                                                                {"type": "string"}
                                                            ],
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                                {
                                                    "anyOf": [
                                                        {
                                                            "description": ' A "into-string" type that normalizes header values.',
                                                            "anyOf": [
                                                                {"type": "string"}
                                                            ],
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                            ],
                                            "maxItems": 2,
                                            "minItems": 2,
                                        },
                                        rule="minItems",
                                    )
                                if data_item_len > 2:
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + "[{data_x}]".format(**locals())
                                        + " must contain less than or equal to 2 items",
                                        value=data_item,
                                        name=""
                                        + (name_prefix or "data")
                                        + "[{data_x}]".format(**locals())
                                        + "",
                                        definition={
                                            "type": ["array", "null"],
                                            "items": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "description": ' A "into-string" type that normalizes header names.',
                                                            "anyOf": [
                                                                {"type": "string"}
                                                            ],
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                                {
                                                    "anyOf": [
                                                        {
                                                            "description": ' A "into-string" type that normalizes header values.',
                                                            "anyOf": [
                                                                {"type": "string"}
                                                            ],
                                                        },
                                                        {"type": "null"},
                                                    ]
                                                },
                                            ],
                                            "maxItems": 2,
                                            "minItems": 2,
                                        },
                                        rule="maxItems",
                                    )
                                if data_item_len > 0:
                                    data_item__0 = data_item[0]
                                    data_item__0_any_of_count71 = 0
                                    if not data_item__0_any_of_count71:
                                        try:
                                            validate___definitions_headername(
                                                data_item__0,
                                                custom_formats,
                                                (name_prefix or "data")
                                                + "[{data_x}][0]".format(**locals()),
                                            )
                                            data_item__0_any_of_count71 += 1
                                        except JsonSchemaValueException:
                                            pass
                                    if not data_item__0_any_of_count71:
                                        try:
                                            if not isinstance(data_item__0, (NoneType)):
                                                raise JsonSchemaValueException(
                                                    ""
                                                    + (name_prefix or "data")
                                                    + "[{data_x}][0]".format(**locals())
                                                    + " must be null",
                                                    value=data_item__0,
                                                    name=""
                                                    + (name_prefix or "data")
                                                    + "[{data_x}][0]".format(**locals())
                                                    + "",
                                                    definition={"type": "null"},
                                                    rule="type",
                                                )
                                            data_item__0_any_of_count71 += 1
                                        except JsonSchemaValueException:
                                            pass
                                    if not data_item__0_any_of_count71:
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + "[{data_x}][0]".format(**locals())
                                            + " cannot be validated by any definition",
                                            value=data_item__0,
                                            name=""
                                            + (name_prefix or "data")
                                            + "[{data_x}][0]".format(**locals())
                                            + "",
                                            definition={
                                                "anyOf": [
                                                    {
                                                        "description": ' A "into-string" type that normalizes header names.',
                                                        "anyOf": [{"type": "string"}],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                            rule="anyOf",
                                        )
                                if data_item_len > 1:
                                    data_item__1 = data_item[1]
                                    data_item__1_any_of_count72 = 0
                                    if not data_item__1_any_of_count72:
                                        try:
                                            validate___definitions_headervalue(
                                                data_item__1,
                                                custom_formats,
                                                (name_prefix or "data")
                                                + "[{data_x}][1]".format(**locals()),
                                            )
                                            data_item__1_any_of_count72 += 1
                                        except JsonSchemaValueException:
                                            pass
                                    if not data_item__1_any_of_count72:
                                        try:
                                            if not isinstance(data_item__1, (NoneType)):
                                                raise JsonSchemaValueException(
                                                    ""
                                                    + (name_prefix or "data")
                                                    + "[{data_x}][1]".format(**locals())
                                                    + " must be null",
                                                    value=data_item__1,
                                                    name=""
                                                    + (name_prefix or "data")
                                                    + "[{data_x}][1]".format(**locals())
                                                    + "",
                                                    definition={"type": "null"},
                                                    rule="type",
                                                )
                                            data_item__1_any_of_count72 += 1
                                        except JsonSchemaValueException:
                                            pass
                                    if not data_item__1_any_of_count72:
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + "[{data_x}][1]".format(**locals())
                                            + " cannot be validated by any definition",
                                            value=data_item__1,
                                            name=""
                                            + (name_prefix or "data")
                                            + "[{data_x}][1]".format(**locals())
                                            + "",
                                            definition={
                                                "anyOf": [
                                                    {
                                                        "description": ' A "into-string" type that normalizes header values.',
                                                        "anyOf": [{"type": "string"}],
                                                    },
                                                    {"type": "null"},
                                                ]
                                            },
                                            rule="anyOf",
                                        )
                    data_any_of_count69 += 1
                except JsonSchemaValueException:
                    pass
            if not data_any_of_count69:
                raise JsonSchemaValueException(
                    ""
                    + (name_prefix or "data")
                    + " cannot be validated by any definition",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "anyOf": [
                            {
                                "type": "object",
                                "additionalProperties": {
                                    "anyOf": [
                                        {
                                            "description": ' A "into-string" type that normalizes header values.',
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": ["array", "null"],
                                    "items": [
                                        {
                                            "anyOf": [
                                                {
                                                    "description": ' A "into-string" type that normalizes header names.',
                                                    "anyOf": [{"type": "string"}],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                        {
                                            "anyOf": [
                                                {
                                                    "description": ' A "into-string" type that normalizes header values.',
                                                    "anyOf": [{"type": "string"}],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    ],
                                    "maxItems": 2,
                                    "minItems": 2,
                                },
                            },
                        ]
                    },
                    rule="anyOf",
                )
            data_any_of_count68 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count68:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " A map holding headers.",
                "anyOf": [
                    {
                        "anyOf": [
                            {
                                "type": "object",
                                "additionalProperties": {
                                    "anyOf": [
                                        {
                                            "description": ' A "into-string" type that normalizes header values.',
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": ["array", "null"],
                                    "items": [
                                        {
                                            "anyOf": [
                                                {
                                                    "description": ' A "into-string" type that normalizes header names.',
                                                    "anyOf": [{"type": "string"}],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                        {
                                            "anyOf": [
                                                {
                                                    "description": ' A "into-string" type that normalizes header values.',
                                                    "anyOf": [{"type": "string"}],
                                                },
                                                {"type": "null"},
                                            ]
                                        },
                                    ],
                                    "maxItems": 2,
                                    "minItems": 2,
                                },
                            },
                        ]
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_headername(data, custom_formats={}, name_prefix=None):
    data_any_of_count73 = 0
    if not data_any_of_count73:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count73 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count73:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A "into-string" type that normalizes header names.',
                "anyOf": [{"type": "string"}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_headervalue(data, custom_formats={}, name_prefix=None):
    data_any_of_count74 = 0
    if not data_any_of_count74:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count74 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count74:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A "into-string" type that normalizes header values.',
                "anyOf": [{"type": "string"}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_cookies(data, custom_formats={}, name_prefix=None):
    data_any_of_count75 = 0
    if not data_any_of_count75:
        try:
            data_any_of_count76 = 0
            if not data_any_of_count76:
                try:
                    if not isinstance(data, (dict)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + " must be object",
                            value=data,
                            name="" + (name_prefix or "data") + "",
                            definition={
                                "type": "object",
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            rule="type",
                        )
                    data_is_dict = isinstance(data, dict)
                    if data_is_dict:
                        data_keys = set(data.keys())
                        for data_key in data_keys:
                            if data_key not in []:
                                data_value = data.get(data_key)
                                if not isinstance(data_value, (str, NoneType)):
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + ".{data_key}".format(**locals())
                                        + " must be string or null",
                                        value=data_value,
                                        name=""
                                        + (name_prefix or "data")
                                        + ".{data_key}".format(**locals())
                                        + "",
                                        definition={"type": ["string", "null"]},
                                        rule="type",
                                    )
                    data_any_of_count76 += 1
                except JsonSchemaValueException:
                    pass
            if not data_any_of_count76:
                try:
                    if not isinstance(data, (list, tuple)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + " must be array",
                            value=data,
                            name="" + (name_prefix or "data") + "",
                            definition={
                                "type": "array",
                                "items": {
                                    "type": ["array", "null"],
                                    "items": [
                                        {"type": ["string", "null"]},
                                        {"type": ["string", "null"]},
                                    ],
                                    "maxItems": 2,
                                    "minItems": 2,
                                },
                            },
                            rule="type",
                        )
                    data_is_list = isinstance(data, (list, tuple))
                    if data_is_list:
                        data_len = len(data)
                        for data_x, data_item in enumerate(data):
                            if not isinstance(data_item, (list, tuple, NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + "[{data_x}]".format(**locals())
                                    + " must be array or null",
                                    value=data_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + "[{data_x}]".format(**locals())
                                    + "",
                                    definition={
                                        "type": ["array", "null"],
                                        "items": [
                                            {"type": ["string", "null"]},
                                            {"type": ["string", "null"]},
                                        ],
                                        "maxItems": 2,
                                        "minItems": 2,
                                    },
                                    rule="type",
                                )
                            data_item_is_list = isinstance(data_item, (list, tuple))
                            if data_item_is_list:
                                data_item_len = len(data_item)
                                if data_item_len < 2:
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + "[{data_x}]".format(**locals())
                                        + " must contain at least 2 items",
                                        value=data_item,
                                        name=""
                                        + (name_prefix or "data")
                                        + "[{data_x}]".format(**locals())
                                        + "",
                                        definition={
                                            "type": ["array", "null"],
                                            "items": [
                                                {"type": ["string", "null"]},
                                                {"type": ["string", "null"]},
                                            ],
                                            "maxItems": 2,
                                            "minItems": 2,
                                        },
                                        rule="minItems",
                                    )
                                if data_item_len > 2:
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + "[{data_x}]".format(**locals())
                                        + " must contain less than or equal to 2 items",
                                        value=data_item,
                                        name=""
                                        + (name_prefix or "data")
                                        + "[{data_x}]".format(**locals())
                                        + "",
                                        definition={
                                            "type": ["array", "null"],
                                            "items": [
                                                {"type": ["string", "null"]},
                                                {"type": ["string", "null"]},
                                            ],
                                            "maxItems": 2,
                                            "minItems": 2,
                                        },
                                        rule="maxItems",
                                    )
                                if data_item_len > 0:
                                    data_item__0 = data_item[0]
                                    if not isinstance(data_item__0, (str, NoneType)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + "[{data_x}][0]".format(**locals())
                                            + " must be string or null",
                                            value=data_item__0,
                                            name=""
                                            + (name_prefix or "data")
                                            + "[{data_x}][0]".format(**locals())
                                            + "",
                                            definition={"type": ["string", "null"]},
                                            rule="type",
                                        )
                                if data_item_len > 1:
                                    data_item__1 = data_item[1]
                                    if not isinstance(data_item__1, (str, NoneType)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + "[{data_x}][1]".format(**locals())
                                            + " must be string or null",
                                            value=data_item__1,
                                            name=""
                                            + (name_prefix or "data")
                                            + "[{data_x}][1]".format(**locals())
                                            + "",
                                            definition={"type": ["string", "null"]},
                                            rule="type",
                                        )
                    data_any_of_count76 += 1
                except JsonSchemaValueException:
                    pass
            if not data_any_of_count76:
                raise JsonSchemaValueException(
                    ""
                    + (name_prefix or "data")
                    + " cannot be validated by any definition",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "anyOf": [
                            {
                                "type": "object",
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": ["array", "null"],
                                    "items": [
                                        {"type": ["string", "null"]},
                                        {"type": ["string", "null"]},
                                    ],
                                    "maxItems": 2,
                                    "minItems": 2,
                                },
                            },
                        ]
                    },
                    rule="anyOf",
                )
            data_any_of_count75 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count75:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " A map holding cookies.",
                "anyOf": [
                    {
                        "anyOf": [
                            {
                                "type": "object",
                                "additionalProperties": {"type": ["string", "null"]},
                            },
                            {
                                "type": "array",
                                "items": {
                                    "type": ["array", "null"],
                                    "items": [
                                        {"type": ["string", "null"]},
                                        {"type": ["string", "null"]},
                                    ],
                                    "maxItems": 2,
                                    "minItems": 2,
                                },
                            },
                        ]
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_timestamp(data, custom_formats={}, name_prefix=None):
    data_any_of_count77 = 0
    if not data_any_of_count77:
        try:
            if not isinstance(data, (int, float, Decimal)) or isinstance(data, bool):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be number",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "number", "format": "double"},
                    rule="type",
                )
            data_any_of_count77 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count77:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count77 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count77:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                "anyOf": [{"type": "number", "format": "double"}, {"type": "string"}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_logentry(data, custom_formats={}, name_prefix=None):
    data_any_of_count78 = 0
    if not data_any_of_count78:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "formatted": {
                                "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                "default": None,
                                "anyOf": [
                                    {"anyOf": [{"type": "string"}]},
                                    {"type": "null"},
                                ],
                            },
                            "message": {
                                "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                "default": None,
                                "anyOf": [
                                    {"anyOf": [{"type": "string"}]},
                                    {"type": "null"},
                                ],
                            },
                            "params": {
                                "description": " Parameters to be interpolated into the log message. This can be an array of positional\n parameters as well as a mapping of named arguments to their values.",
                                "default": None,
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "formatted" in data_keys:
                    data_keys.remove("formatted")
                    data__formatted = data["formatted"]
                    data__formatted_any_of_count79 = 0
                    if not data__formatted_any_of_count79:
                        try:
                            validate___definitions_message(
                                data__formatted,
                                custom_formats,
                                (name_prefix or "data") + ".formatted",
                            )
                            data__formatted_any_of_count79 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__formatted_any_of_count79:
                        try:
                            if not isinstance(data__formatted, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".formatted must be null",
                                    value=data__formatted,
                                    name="" + (name_prefix or "data") + ".formatted",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__formatted_any_of_count79 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__formatted_any_of_count79:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".formatted cannot be validated by any definition",
                            value=data__formatted,
                            name="" + (name_prefix or "data") + ".formatted",
                            definition={
                                "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                "default": None,
                                "anyOf": [
                                    {"anyOf": [{"type": "string"}]},
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "message" in data_keys:
                    data_keys.remove("message")
                    data__message = data["message"]
                    data__message_any_of_count80 = 0
                    if not data__message_any_of_count80:
                        try:
                            validate___definitions_message(
                                data__message,
                                custom_formats,
                                (name_prefix or "data") + ".message",
                            )
                            data__message_any_of_count80 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__message_any_of_count80:
                        try:
                            if not isinstance(data__message, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".message must be null",
                                    value=data__message,
                                    name="" + (name_prefix or "data") + ".message",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__message_any_of_count80 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__message_any_of_count80:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".message cannot be validated by any definition",
                            value=data__message,
                            name="" + (name_prefix or "data") + ".message",
                            definition={
                                "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                "default": None,
                                "anyOf": [
                                    {"anyOf": [{"type": "string"}]},
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "params" in data_keys:
                    data_keys.remove("params")
                    data__params = data["params"]
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "formatted": {
                                    "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                    "default": None,
                                    "anyOf": [
                                        {"anyOf": [{"type": "string"}]},
                                        {"type": "null"},
                                    ],
                                },
                                "message": {
                                    "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                    "default": None,
                                    "anyOf": [
                                        {"anyOf": [{"type": "string"}]},
                                        {"type": "null"},
                                    ],
                                },
                                "params": {
                                    "description": " Parameters to be interpolated into the log message. This can be an array of positional\n parameters as well as a mapping of named arguments to their values.",
                                    "default": None,
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count78 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count78:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A log entry message.\n\n A log message is similar to the `message` attribute on the event itself but\n can additionally hold optional parameters.\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like %s",\n     "params": ["this"]\n   }\n }\n ```\n\n ```json\n {\n   "logentry": {\n     "message": "My raw message with interpreted strings like {foo}",\n     "params": {"foo": "this"}\n   }\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "formatted": {
                                "description": " The formatted message. If `message` and `params` are given, Sentry\n will attempt to backfill `formatted` if empty.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                "default": None,
                                "anyOf": [
                                    {"anyOf": [{"type": "string"}]},
                                    {"type": "null"},
                                ],
                            },
                            "message": {
                                "description": " The log message with parameter placeholders.\n\n This attribute is primarily used for grouping related events together into issues.\n Therefore this really should just be a string template, i.e. `Sending %d requests` instead\n of `Sending 9999 requests`. The latter is much better at home in `formatted`.\n\n It must not exceed 8192 characters. Longer messages will be truncated.",
                                "default": None,
                                "anyOf": [
                                    {"anyOf": [{"type": "string"}]},
                                    {"type": "null"},
                                ],
                            },
                            "params": {
                                "description": " Parameters to be interpolated into the log message. This can be an array of positional\n parameters as well as a mapping of named arguments to their values.",
                                "default": None,
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_message(data, custom_formats={}, name_prefix=None):
    data_any_of_count81 = 0
    if not data_any_of_count81:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count81 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count81:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={"anyOf": [{"type": "string"}]},
            rule="anyOf",
        )
    return data


def validate___definitions_level(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Severity level of an event or breadcrumb.",
                "type": "string",
                "enum": ["debug", "info", "warning", "error", "fatal"],
            },
            rule="type",
        )
    if data not in ["debug", "info", "warning", "error", "fatal"]:
        raise JsonSchemaValueException(
            ""
            + (name_prefix or "data")
            + " must be one of ['debug', 'info', 'warning', 'error', 'fatal']",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Severity level of an event or breadcrumb.",
                "type": "string",
                "enum": ["debug", "info", "warning", "error", "fatal"],
            },
            rule="enum",
        )
    return data


def validate___definitions_fingerprint(data, custom_formats={}, name_prefix=None):
    data_any_of_count82 = 0
    if not data_any_of_count82:
        try:
            if not isinstance(data, (list, tuple)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be array",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "array", "items": {"type": "string"}},
                    rule="type",
                )
            data_is_list = isinstance(data, (list, tuple))
            if data_is_list:
                data_len = len(data)
                for data_x, data_item in enumerate(data):
                    if not isinstance(data_item, (str)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + "[{data_x}]".format(**locals())
                            + " must be string",
                            value=data_item,
                            name=""
                            + (name_prefix or "data")
                            + "[{data_x}]".format(**locals())
                            + "",
                            definition={"type": "string"},
                            rule="type",
                        )
            data_any_of_count82 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count82:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " A fingerprint value.",
                "anyOf": [{"type": "array", "items": {"type": "string"}}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_exception(data, custom_formats={}, name_prefix=None):
    data_any_of_count83 = 0
    if not data_any_of_count83:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "mechanism": {
                                "description": " Mechanism by which this exception was generated and handled.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The mechanism by which an exception was generated and handled.\n\n The exception mechanism is an optional field residing in the [exception](#typedef-Exception).\n It carries additional information about the way the exception was created on the target system.\n This includes general exception values obtained from the operating system or runtime APIs, as\n well as mechanism-specific values.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["type"],
                                                "properties": {
                                                    "data": {
                                                        "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "description": {
                                                        "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "exception_id": {
                                                        "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "handled": {
                                                        "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "help_link": {
                                                        "description": " Link to online resources describing this error.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "is_exception_group": {
                                                        "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "meta": {
                                                        "description": " Operating system or runtime meta information.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/MechanismMeta"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "parent_id": {
                                                        "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "source": {
                                                        "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "synthetic": {
                                                        "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "type": {
                                                        "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "module": {
                                "description": " The optional module, or package which the exception type lives in.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "stacktrace": {
                                "description": " Stack trace containing frames of this exception.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "thread_id": {
                                "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "type": {
                                "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "value": {
                                "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' A "into-string" type of value. All non-string values are serialized as JSON.',
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "mechanism" in data_keys:
                    data_keys.remove("mechanism")
                    data__mechanism = data["mechanism"]
                    data__mechanism_any_of_count84 = 0
                    if not data__mechanism_any_of_count84:
                        try:
                            validate___definitions_mechanism(
                                data__mechanism,
                                custom_formats,
                                (name_prefix or "data") + ".mechanism",
                            )
                            data__mechanism_any_of_count84 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__mechanism_any_of_count84:
                        try:
                            if not isinstance(data__mechanism, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".mechanism must be null",
                                    value=data__mechanism,
                                    name="" + (name_prefix or "data") + ".mechanism",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__mechanism_any_of_count84 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__mechanism_any_of_count84:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".mechanism cannot be validated by any definition",
                            value=data__mechanism,
                            name="" + (name_prefix or "data") + ".mechanism",
                            definition={
                                "description": " Mechanism by which this exception was generated and handled.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The mechanism by which an exception was generated and handled.\n\n The exception mechanism is an optional field residing in the [exception](#typedef-Exception).\n It carries additional information about the way the exception was created on the target system.\n This includes general exception values obtained from the operating system or runtime APIs, as\n well as mechanism-specific values.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["type"],
                                                "properties": {
                                                    "data": {
                                                        "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "description": {
                                                        "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "exception_id": {
                                                        "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "handled": {
                                                        "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "help_link": {
                                                        "description": " Link to online resources describing this error.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "is_exception_group": {
                                                        "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "meta": {
                                                        "description": " Operating system or runtime meta information.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/MechanismMeta"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "parent_id": {
                                                        "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "source": {
                                                        "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "synthetic": {
                                                        "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "type": {
                                                        "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "module" in data_keys:
                    data_keys.remove("module")
                    data__module = data["module"]
                    if not isinstance(data__module, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".module must be string or null",
                            value=data__module,
                            name="" + (name_prefix or "data") + ".module",
                            definition={
                                "description": " The optional module, or package which the exception type lives in.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "stacktrace" in data_keys:
                    data_keys.remove("stacktrace")
                    data__stacktrace = data["stacktrace"]
                    data__stacktrace_any_of_count85 = 0
                    if not data__stacktrace_any_of_count85:
                        try:
                            validate___definitions_stacktrace(
                                data__stacktrace,
                                custom_formats,
                                (name_prefix or "data") + ".stacktrace",
                            )
                            data__stacktrace_any_of_count85 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__stacktrace_any_of_count85:
                        try:
                            if not isinstance(data__stacktrace, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".stacktrace must be null",
                                    value=data__stacktrace,
                                    name="" + (name_prefix or "data") + ".stacktrace",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__stacktrace_any_of_count85 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__stacktrace_any_of_count85:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".stacktrace cannot be validated by any definition",
                            value=data__stacktrace,
                            name="" + (name_prefix or "data") + ".stacktrace",
                            definition={
                                "description": " Stack trace containing frames of this exception.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "thread_id" in data_keys:
                    data_keys.remove("thread_id")
                    data__threadid = data["thread_id"]
                    data__threadid_any_of_count86 = 0
                    if not data__threadid_any_of_count86:
                        try:
                            validate___definitions_threadid(
                                data__threadid,
                                custom_formats,
                                (name_prefix or "data") + ".thread_id",
                            )
                            data__threadid_any_of_count86 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__threadid_any_of_count86:
                        try:
                            if not isinstance(data__threadid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".thread_id must be null",
                                    value=data__threadid,
                                    name="" + (name_prefix or "data") + ".thread_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__threadid_any_of_count86 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__threadid_any_of_count86:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".thread_id cannot be validated by any definition",
                            value=data__threadid,
                            name="" + (name_prefix or "data") + ".thread_id",
                            definition={
                                "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "type" in data_keys:
                    data_keys.remove("type")
                    data__type = data["type"]
                    if not isinstance(data__type, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".type must be string or null",
                            value=data__type,
                            name="" + (name_prefix or "data") + ".type",
                            definition={
                                "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "value" in data_keys:
                    data_keys.remove("value")
                    data__value = data["value"]
                    data__value_any_of_count87 = 0
                    if not data__value_any_of_count87:
                        try:
                            validate___definitions_jsonlenientstring(
                                data__value,
                                custom_formats,
                                (name_prefix or "data") + ".value",
                            )
                            data__value_any_of_count87 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__value_any_of_count87:
                        try:
                            if not isinstance(data__value, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".value must be null",
                                    value=data__value,
                                    name="" + (name_prefix or "data") + ".value",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__value_any_of_count87 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__value_any_of_count87:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".value cannot be validated by any definition",
                            value=data__value,
                            name="" + (name_prefix or "data") + ".value",
                            definition={
                                "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' A "into-string" type of value. All non-string values are serialized as JSON.',
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "mechanism": {
                                    "description": " Mechanism by which this exception was generated and handled.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " The mechanism by which an exception was generated and handled.\n\n The exception mechanism is an optional field residing in the [exception](#typedef-Exception).\n It carries additional information about the way the exception was created on the target system.\n This includes general exception values obtained from the operating system or runtime APIs, as\n well as mechanism-specific values.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "required": ["type"],
                                                    "properties": {
                                                        "data": {
                                                            "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                                            "default": None,
                                                            "type": ["object", "null"],
                                                            "additionalProperties": True,
                                                        },
                                                        "description": {
                                                            "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "exception_id": {
                                                            "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "handled": {
                                                            "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "help_link": {
                                                            "description": " Link to online resources describing this error.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "is_exception_group": {
                                                            "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "meta": {
                                                            "description": " Operating system or runtime meta information.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/MechanismMeta"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "parent_id": {
                                                            "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "source": {
                                                            "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "synthetic": {
                                                            "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                                            "default": None,
                                                            "type": ["boolean", "null"],
                                                        },
                                                        "type": {
                                                            "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "module": {
                                    "description": " The optional module, or package which the exception type lives in.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "stacktrace": {
                                    "description": " Stack trace containing frames of this exception.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "anyOf": [
                                                {"$ref": "#/definitions/RawStacktrace"}
                                            ]
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "thread_id": {
                                    "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Represents a thread id.",
                                            "anyOf": [
                                                {
                                                    "type": "integer",
                                                    "format": "uint64",
                                                    "minimum": 0.0,
                                                },
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "type": {
                                    "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "value": {
                                    "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": ' A "into-string" type of value. All non-string values are serialized as JSON.',
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count83 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count83:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A single exception.\n\n Multiple values inside of an [event](#typedef-Event) represent chained exceptions and should be sorted oldest to newest. For example, consider this Python code snippet:\n\n ```python\n try:\n     raise Exception("random boring invariant was not met!")\n except Exception as e:\n     raise ValueError("something went wrong, help!") from e\n ```\n\n `Exception` would be described first in the values list, followed by a description of `ValueError`:\n\n ```json\n {\n   "exception": {\n     "values": [\n       {"type": "Exception": "value": "random boring invariant was not met!"},\n       {"type": "ValueError", "value": "something went wrong, help!"},\n     ]\n   }\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "mechanism": {
                                "description": " Mechanism by which this exception was generated and handled.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The mechanism by which an exception was generated and handled.\n\n The exception mechanism is an optional field residing in the [exception](#typedef-Exception).\n It carries additional information about the way the exception was created on the target system.\n This includes general exception values obtained from the operating system or runtime APIs, as\n well as mechanism-specific values.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "required": ["type"],
                                                "properties": {
                                                    "data": {
                                                        "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                    "description": {
                                                        "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "exception_id": {
                                                        "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "handled": {
                                                        "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "help_link": {
                                                        "description": " Link to online resources describing this error.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "is_exception_group": {
                                                        "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "meta": {
                                                        "description": " Operating system or runtime meta information.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/MechanismMeta"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "parent_id": {
                                                        "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "source": {
                                                        "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "synthetic": {
                                                        "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                                        "default": None,
                                                        "type": ["boolean", "null"],
                                                    },
                                                    "type": {
                                                        "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "module": {
                                "description": " The optional module, or package which the exception type lives in.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "stacktrace": {
                                "description": " Stack trace containing frames of this exception.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "anyOf": [
                                            {"$ref": "#/definitions/RawStacktrace"}
                                        ]
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "thread_id": {
                                "description": " An optional value that refers to a [thread](#typedef-Thread).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "type": {
                                "description": " Exception type, e.g. `ValueError`.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "value": {
                                "description": " Human readable display value.\n\n At least one of `type` or `value` is required, otherwise the exception is discarded.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": ' A "into-string" type of value. All non-string values are serialized as JSON.',
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_jsonlenientstring(data, custom_formats={}, name_prefix=None):
    data_any_of_count88 = 0
    if not data_any_of_count88:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count88 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count88:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A "into-string" type of value. All non-string values are serialized as JSON.',
                "anyOf": [{"type": "string"}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_mechanism(data, custom_formats={}, name_prefix=None):
    data_any_of_count89 = 0
    if not data_any_of_count89:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["type"],
                        "properties": {
                            "data": {
                                "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "description": {
                                "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "exception_id": {
                                "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "handled": {
                                "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "help_link": {
                                "description": " Link to online resources describing this error.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "is_exception_group": {
                                "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "meta": {
                                "description": " Operating system or runtime meta information.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Operating system or runtime meta information to an exception mechanism.\n\n The mechanism metadata usually carries error codes reported by the runtime or operating system,\n along with a platform-dependent interpretation of these codes. SDKs can safely omit code names\n and descriptions for well-known error codes, as it will be filled out by Sentry. For\n proprietary or vendor-specific error codes, adding these values will give additional\n information to the user.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "errno": {
                                                        "description": " Optional ISO C standard error code.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/CError"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "mach_exception": {
                                                        "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/MachException"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "ns_error": {
                                                        "description": " An NSError on Apple systems comprising code and signal.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/NsError"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "signal": {
                                                        "description": " Information on the POSIX signal.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/PosixSignal"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "parent_id": {
                                "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "source": {
                                "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "synthetic": {
                                "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "type": {
                                "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["type"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["type"],
                            "properties": {
                                "data": {
                                    "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                                "description": {
                                    "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "exception_id": {
                                    "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "handled": {
                                    "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "help_link": {
                                    "description": " Link to online resources describing this error.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "is_exception_group": {
                                    "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "meta": {
                                    "description": " Operating system or runtime meta information.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Operating system or runtime meta information to an exception mechanism.\n\n The mechanism metadata usually carries error codes reported by the runtime or operating system,\n along with a platform-dependent interpretation of these codes. SDKs can safely omit code names\n and descriptions for well-known error codes, as it will be filled out by Sentry. For\n proprietary or vendor-specific error codes, adding these values will give additional\n information to the user.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "errno": {
                                                            "description": " Optional ISO C standard error code.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/CError"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "mach_exception": {
                                                            "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/MachException"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "ns_error": {
                                                            "description": " An NSError on Apple systems comprising code and signal.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/NsError"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "signal": {
                                                            "description": " Information on the POSIX signal.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/PosixSignal"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "parent_id": {
                                    "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "source": {
                                    "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "synthetic": {
                                    "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "type": {
                                    "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "data" in data_keys:
                    data_keys.remove("data")
                    data__data = data["data"]
                    if not isinstance(data__data, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".data must be object or null",
                            value=data__data,
                            name="" + (name_prefix or "data") + ".data",
                            definition={
                                "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            rule="type",
                        )
                    data__data_is_dict = isinstance(data__data, dict)
                    if data__data_is_dict:
                        data__data_keys = set(data__data.keys())
                if "description" in data_keys:
                    data_keys.remove("description")
                    data__description = data["description"]
                    if not isinstance(data__description, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".description must be string or null",
                            value=data__description,
                            name="" + (name_prefix or "data") + ".description",
                            definition={
                                "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "exception_id" in data_keys:
                    data_keys.remove("exception_id")
                    data__exceptionid = data["exception_id"]
                    if (
                        not isinstance(data__exceptionid, (int, NoneType))
                        and not (
                            isinstance(data__exceptionid, float)
                            and data__exceptionid.is_integer()
                        )
                        or isinstance(data__exceptionid, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".exception_id must be integer or null",
                            value=data__exceptionid,
                            name="" + (name_prefix or "data") + ".exception_id",
                            definition={
                                "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__exceptionid, (int, float, Decimal)):
                        if data__exceptionid < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".exception_id must be bigger than or equal to 0.0",
                                value=data__exceptionid,
                                name="" + (name_prefix or "data") + ".exception_id",
                                definition={
                                    "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "handled" in data_keys:
                    data_keys.remove("handled")
                    data__handled = data["handled"]
                    if not isinstance(data__handled, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".handled must be boolean or null",
                            value=data__handled,
                            name="" + (name_prefix or "data") + ".handled",
                            definition={
                                "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "help_link" in data_keys:
                    data_keys.remove("help_link")
                    data__helplink = data["help_link"]
                    if not isinstance(data__helplink, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".help_link must be string or null",
                            value=data__helplink,
                            name="" + (name_prefix or "data") + ".help_link",
                            definition={
                                "description": " Link to online resources describing this error.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "is_exception_group" in data_keys:
                    data_keys.remove("is_exception_group")
                    data__isexceptiongroup = data["is_exception_group"]
                    if not isinstance(data__isexceptiongroup, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".is_exception_group must be boolean or null",
                            value=data__isexceptiongroup,
                            name="" + (name_prefix or "data") + ".is_exception_group",
                            definition={
                                "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "meta" in data_keys:
                    data_keys.remove("meta")
                    data__meta = data["meta"]
                    data__meta_any_of_count90 = 0
                    if not data__meta_any_of_count90:
                        try:
                            validate___definitions_mechanismmeta(
                                data__meta,
                                custom_formats,
                                (name_prefix or "data") + ".meta",
                            )
                            data__meta_any_of_count90 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__meta_any_of_count90:
                        try:
                            if not isinstance(data__meta, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".meta must be null",
                                    value=data__meta,
                                    name="" + (name_prefix or "data") + ".meta",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__meta_any_of_count90 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__meta_any_of_count90:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".meta cannot be validated by any definition",
                            value=data__meta,
                            name="" + (name_prefix or "data") + ".meta",
                            definition={
                                "description": " Operating system or runtime meta information.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Operating system or runtime meta information to an exception mechanism.\n\n The mechanism metadata usually carries error codes reported by the runtime or operating system,\n along with a platform-dependent interpretation of these codes. SDKs can safely omit code names\n and descriptions for well-known error codes, as it will be filled out by Sentry. For\n proprietary or vendor-specific error codes, adding these values will give additional\n information to the user.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "errno": {
                                                        "description": " Optional ISO C standard error code.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/CError"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "mach_exception": {
                                                        "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/MachException"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "ns_error": {
                                                        "description": " An NSError on Apple systems comprising code and signal.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/NsError"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "signal": {
                                                        "description": " Information on the POSIX signal.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/PosixSignal"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "parent_id" in data_keys:
                    data_keys.remove("parent_id")
                    data__parentid = data["parent_id"]
                    if (
                        not isinstance(data__parentid, (int, NoneType))
                        and not (
                            isinstance(data__parentid, float)
                            and data__parentid.is_integer()
                        )
                        or isinstance(data__parentid, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".parent_id must be integer or null",
                            value=data__parentid,
                            name="" + (name_prefix or "data") + ".parent_id",
                            definition={
                                "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__parentid, (int, float, Decimal)):
                        if data__parentid < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".parent_id must be bigger than or equal to 0.0",
                                value=data__parentid,
                                name="" + (name_prefix or "data") + ".parent_id",
                                definition={
                                    "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "source" in data_keys:
                    data_keys.remove("source")
                    data__source = data["source"]
                    if not isinstance(data__source, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".source must be string or null",
                            value=data__source,
                            name="" + (name_prefix or "data") + ".source",
                            definition={
                                "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "synthetic" in data_keys:
                    data_keys.remove("synthetic")
                    data__synthetic = data["synthetic"]
                    if not isinstance(data__synthetic, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".synthetic must be boolean or null",
                            value=data__synthetic,
                            name="" + (name_prefix or "data") + ".synthetic",
                            definition={
                                "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "type" in data_keys:
                    data_keys.remove("type")
                    data__type = data["type"]
                    if not isinstance(data__type, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".type must be string or null",
                            value=data__type,
                            name="" + (name_prefix or "data") + ".type",
                            definition={
                                "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["type"],
                            "properties": {
                                "data": {
                                    "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                                "description": {
                                    "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "exception_id": {
                                    "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "handled": {
                                    "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "help_link": {
                                    "description": " Link to online resources describing this error.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "is_exception_group": {
                                    "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "meta": {
                                    "description": " Operating system or runtime meta information.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Operating system or runtime meta information to an exception mechanism.\n\n The mechanism metadata usually carries error codes reported by the runtime or operating system,\n along with a platform-dependent interpretation of these codes. SDKs can safely omit code names\n and descriptions for well-known error codes, as it will be filled out by Sentry. For\n proprietary or vendor-specific error codes, adding these values will give additional\n information to the user.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "errno": {
                                                            "description": " Optional ISO C standard error code.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/CError"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "mach_exception": {
                                                            "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/MachException"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "ns_error": {
                                                            "description": " An NSError on Apple systems comprising code and signal.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/NsError"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "signal": {
                                                            "description": " Information on the POSIX signal.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/PosixSignal"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "parent_id": {
                                    "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "source": {
                                    "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "synthetic": {
                                    "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "type": {
                                    "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count89 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count89:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " The mechanism by which an exception was generated and handled.\n\n The exception mechanism is an optional field residing in the [exception](#typedef-Exception).\n It carries additional information about the way the exception was created on the target system.\n This includes general exception values obtained from the operating system or runtime APIs, as\n well as mechanism-specific values.",
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["type"],
                        "properties": {
                            "data": {
                                "description": " Arbitrary extra data that might help the user understand the error thrown by this mechanism.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "description": {
                                "description": " Optional human-readable description of the error mechanism.\n\n May include a possible hint on how to solve this error.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "exception_id": {
                                "description": " An optional numeric value providing an ID for the exception relative to this specific event.\n It is referenced by the `parent_id` to reconstruct the logical tree of exceptions in an\n exception group.\n\n This should contain an unsigned integer value starting with `0` for the last exception in\n the exception values list, then `1` for the previous exception, etc.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "handled": {
                                "description": " Flag indicating whether this exception was handled.\n\n This is a best-effort guess at whether the exception was handled by user code or not. For\n example:\n\n - Exceptions leading to a 500 Internal Server Error or to a hard process crash are\n   `handled=false`, as the SDK typically has an integration that automatically captures the\n   error.\n\n - Exceptions captured using `capture_exception` (called from user code) are `handled=true`\n   as the user explicitly captured the exception (and therefore kind of handled it)",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "help_link": {
                                "description": " Link to online resources describing this error.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "is_exception_group": {
                                "description": ' An optional boolean value, set `true` when the exception is the platform-specific exception\n group type.  Defaults to `false`.\n\n For example, exceptions of type `ExceptionGroup` (Python), `AggregateException` (.NET), and\n `AggregateError` (JavaScript) should have `"is_exception_group": true`.  Other exceptions\n can omit this field.',
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "meta": {
                                "description": " Operating system or runtime meta information.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Operating system or runtime meta information to an exception mechanism.\n\n The mechanism metadata usually carries error codes reported by the runtime or operating system,\n along with a platform-dependent interpretation of these codes. SDKs can safely omit code names\n and descriptions for well-known error codes, as it will be filled out by Sentry. For\n proprietary or vendor-specific error codes, adding these values will give additional\n information to the user.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "errno": {
                                                        "description": " Optional ISO C standard error code.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/CError"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "mach_exception": {
                                                        "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/MachException"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "ns_error": {
                                                        "description": " An NSError on Apple systems comprising code and signal.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/NsError"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "signal": {
                                                        "description": " Information on the POSIX signal.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/PosixSignal"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "parent_id": {
                                "description": " An optional numeric value pointing at the `exception_id` that is the direct parent of this\n exception, used to reconstruct the logical tree of exceptions in an exception group.\n\n The last exception in the exception values list should omit this field, because it is the\n root exception and thus has no parent.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "source": {
                                "description": ' An optional string value describing the source of the exception.\n\n For chained exceptions, this should contain the platform-specific name of the property or\n attribute (on the parent exception) that this exception was acquired from. In the case of\n an array, it should include the zero-based array index as well.\n\n - Python Examples: `"__context__"`, `"__cause__"`, `"exceptions[0]"`, `"exceptions[1]"`\n\n - .NET Examples:  `"InnerException"`, `"InnerExceptions[0]"`, `"InnerExceptions[1]"`\n\n - JavaScript Examples: `"cause"`, `"errors[0]"`, `"errors[1]"`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "synthetic": {
                                "description": " If this is set then the exception is not a real exception but some\n form of synthetic error for instance from a signal handler, a hard\n segfault or similar where type and value are not useful for grouping\n or display purposes.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "type": {
                                "description": ' Mechanism type (required).\n\n Required unique identifier of this mechanism determining rendering and processing of the\n mechanism data.\n\n In the Python SDK this is merely the name of the framework integration that produced the\n exception, while for native it is e.g. `"minidump"` or `"applecrashreport"`.',
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_mechanismmeta(data, custom_formats={}, name_prefix=None):
    data_any_of_count91 = 0
    if not data_any_of_count91:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "errno": {
                                "description": " Optional ISO C standard error code.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " POSIX signal with optional extended data.\n\n Error codes set by Linux system calls and some library functions as specified in ISO C99,\n POSIX.1-2001, and POSIX.1-2008. See\n [`errno(3)`](https://man7.org/linux/man-pages/man3/errno.3.html) for more information.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "number": {
                                                        "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "mach_exception": {
                                "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Mach exception information.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " The mach exception code.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "exception": {
                                                        "description": " The mach exception type.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "name": {
                                                        "description": " Optional name of the mach exception.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "subcode": {
                                                        "description": " The mach exception subcode.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "ns_error": {
                                "description": " An NSError on Apple systems comprising code and signal.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " NSError informaiton.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " The error code.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "domain": {
                                                        "description": " A string containing the error domain.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "signal": {
                                "description": " Information on the POSIX signal.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " POSIX signal with optional extended data.\n\n On Apple systems, signals also carry a code in addition to the signal number describing the\n signal in more detail. On Linux, this code does not exist.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " An optional signal code present on Apple systems.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "code_name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "number": {
                                                        "description": " The POSIX signal number.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "errno" in data_keys:
                    data_keys.remove("errno")
                    data__errno = data["errno"]
                    data__errno_any_of_count92 = 0
                    if not data__errno_any_of_count92:
                        try:
                            validate___definitions_cerror(
                                data__errno,
                                custom_formats,
                                (name_prefix or "data") + ".errno",
                            )
                            data__errno_any_of_count92 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__errno_any_of_count92:
                        try:
                            if not isinstance(data__errno, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".errno must be null",
                                    value=data__errno,
                                    name="" + (name_prefix or "data") + ".errno",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__errno_any_of_count92 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__errno_any_of_count92:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".errno cannot be validated by any definition",
                            value=data__errno,
                            name="" + (name_prefix or "data") + ".errno",
                            definition={
                                "description": " Optional ISO C standard error code.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " POSIX signal with optional extended data.\n\n Error codes set by Linux system calls and some library functions as specified in ISO C99,\n POSIX.1-2001, and POSIX.1-2008. See\n [`errno(3)`](https://man7.org/linux/man-pages/man3/errno.3.html) for more information.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "number": {
                                                        "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "mach_exception" in data_keys:
                    data_keys.remove("mach_exception")
                    data__machexception = data["mach_exception"]
                    data__machexception_any_of_count93 = 0
                    if not data__machexception_any_of_count93:
                        try:
                            validate___definitions_machexception(
                                data__machexception,
                                custom_formats,
                                (name_prefix or "data") + ".mach_exception",
                            )
                            data__machexception_any_of_count93 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__machexception_any_of_count93:
                        try:
                            if not isinstance(data__machexception, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".mach_exception must be null",
                                    value=data__machexception,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".mach_exception",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__machexception_any_of_count93 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__machexception_any_of_count93:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".mach_exception cannot be validated by any definition",
                            value=data__machexception,
                            name="" + (name_prefix or "data") + ".mach_exception",
                            definition={
                                "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Mach exception information.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " The mach exception code.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "exception": {
                                                        "description": " The mach exception type.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "name": {
                                                        "description": " Optional name of the mach exception.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "subcode": {
                                                        "description": " The mach exception subcode.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "ns_error" in data_keys:
                    data_keys.remove("ns_error")
                    data__nserror = data["ns_error"]
                    data__nserror_any_of_count94 = 0
                    if not data__nserror_any_of_count94:
                        try:
                            validate___definitions_nserror(
                                data__nserror,
                                custom_formats,
                                (name_prefix or "data") + ".ns_error",
                            )
                            data__nserror_any_of_count94 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__nserror_any_of_count94:
                        try:
                            if not isinstance(data__nserror, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".ns_error must be null",
                                    value=data__nserror,
                                    name="" + (name_prefix or "data") + ".ns_error",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__nserror_any_of_count94 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__nserror_any_of_count94:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".ns_error cannot be validated by any definition",
                            value=data__nserror,
                            name="" + (name_prefix or "data") + ".ns_error",
                            definition={
                                "description": " An NSError on Apple systems comprising code and signal.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " NSError informaiton.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " The error code.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "domain": {
                                                        "description": " A string containing the error domain.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "signal" in data_keys:
                    data_keys.remove("signal")
                    data__signal = data["signal"]
                    data__signal_any_of_count95 = 0
                    if not data__signal_any_of_count95:
                        try:
                            validate___definitions_posixsignal(
                                data__signal,
                                custom_formats,
                                (name_prefix or "data") + ".signal",
                            )
                            data__signal_any_of_count95 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__signal_any_of_count95:
                        try:
                            if not isinstance(data__signal, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".signal must be null",
                                    value=data__signal,
                                    name="" + (name_prefix or "data") + ".signal",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__signal_any_of_count95 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__signal_any_of_count95:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".signal cannot be validated by any definition",
                            value=data__signal,
                            name="" + (name_prefix or "data") + ".signal",
                            definition={
                                "description": " Information on the POSIX signal.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " POSIX signal with optional extended data.\n\n On Apple systems, signals also carry a code in addition to the signal number describing the\n signal in more detail. On Linux, this code does not exist.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " An optional signal code present on Apple systems.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "code_name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "number": {
                                                        "description": " The POSIX signal number.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "errno": {
                                    "description": " Optional ISO C standard error code.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " POSIX signal with optional extended data.\n\n Error codes set by Linux system calls and some library functions as specified in ISO C99,\n POSIX.1-2001, and POSIX.1-2008. See\n [`errno(3)`](https://man7.org/linux/man-pages/man3/errno.3.html) for more information.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "name": {
                                                            "description": " Optional name of the errno constant.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "number": {
                                                            "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "int64",
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "mach_exception": {
                                    "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Mach exception information.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "code": {
                                                            "description": " The mach exception code.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "exception": {
                                                            "description": " The mach exception type.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "int64",
                                                        },
                                                        "name": {
                                                            "description": " Optional name of the mach exception.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "subcode": {
                                                            "description": " The mach exception subcode.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "ns_error": {
                                    "description": " An NSError on Apple systems comprising code and signal.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " NSError informaiton.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "code": {
                                                            "description": " The error code.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "int64",
                                                        },
                                                        "domain": {
                                                            "description": " A string containing the error domain.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "signal": {
                                    "description": " Information on the POSIX signal.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " POSIX signal with optional extended data.\n\n On Apple systems, signals also carry a code in addition to the signal number describing the\n signal in more detail. On Linux, this code does not exist.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "code": {
                                                            "description": " An optional signal code present on Apple systems.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "int64",
                                                        },
                                                        "code_name": {
                                                            "description": " Optional name of the errno constant.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "name": {
                                                            "description": " Optional name of the errno constant.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "number": {
                                                            "description": " The POSIX signal number.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "int64",
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count91 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count91:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Operating system or runtime meta information to an exception mechanism.\n\n The mechanism metadata usually carries error codes reported by the runtime or operating system,\n along with a platform-dependent interpretation of these codes. SDKs can safely omit code names\n and descriptions for well-known error codes, as it will be filled out by Sentry. For\n proprietary or vendor-specific error codes, adding these values will give additional\n information to the user.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "errno": {
                                "description": " Optional ISO C standard error code.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " POSIX signal with optional extended data.\n\n Error codes set by Linux system calls and some library functions as specified in ISO C99,\n POSIX.1-2001, and POSIX.1-2008. See\n [`errno(3)`](https://man7.org/linux/man-pages/man3/errno.3.html) for more information.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "number": {
                                                        "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "mach_exception": {
                                "description": " A Mach Exception on Apple systems comprising a code triple and optional descriptions.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Mach exception information.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " The mach exception code.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "exception": {
                                                        "description": " The mach exception type.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "name": {
                                                        "description": " Optional name of the mach exception.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "subcode": {
                                                        "description": " The mach exception subcode.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "ns_error": {
                                "description": " An NSError on Apple systems comprising code and signal.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " NSError informaiton.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " The error code.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "domain": {
                                                        "description": " A string containing the error domain.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "signal": {
                                "description": " Information on the POSIX signal.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " POSIX signal with optional extended data.\n\n On Apple systems, signals also carry a code in addition to the signal number describing the\n signal in more detail. On Linux, this code does not exist.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "code": {
                                                        "description": " An optional signal code present on Apple systems.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                    "code_name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "name": {
                                                        "description": " Optional name of the errno constant.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "number": {
                                                        "description": " The POSIX signal number.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "int64",
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_posixsignal(data, custom_formats={}, name_prefix=None):
    data_any_of_count96 = 0
    if not data_any_of_count96:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "code": {
                                "description": " An optional signal code present on Apple systems.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            "code_name": {
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "name": {
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "number": {
                                "description": " The POSIX signal number.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "code" in data_keys:
                    data_keys.remove("code")
                    data__code = data["code"]
                    if (
                        not isinstance(data__code, (int, NoneType))
                        and not (
                            isinstance(data__code, float) and data__code.is_integer()
                        )
                        or isinstance(data__code, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".code must be integer or null",
                            value=data__code,
                            name="" + (name_prefix or "data") + ".code",
                            definition={
                                "description": " An optional signal code present on Apple systems.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            rule="type",
                        )
                if "code_name" in data_keys:
                    data_keys.remove("code_name")
                    data__codename = data["code_name"]
                    if not isinstance(data__codename, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".code_name must be string or null",
                            value=data__codename,
                            name="" + (name_prefix or "data") + ".code_name",
                            definition={
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "number" in data_keys:
                    data_keys.remove("number")
                    data__number = data["number"]
                    if (
                        not isinstance(data__number, (int, NoneType))
                        and not (
                            isinstance(data__number, float)
                            and data__number.is_integer()
                        )
                        or isinstance(data__number, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".number must be integer or null",
                            value=data__number,
                            name="" + (name_prefix or "data") + ".number",
                            definition={
                                "description": " The POSIX signal number.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "code": {
                                    "description": " An optional signal code present on Apple systems.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "int64",
                                },
                                "code_name": {
                                    "description": " Optional name of the errno constant.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "name": {
                                    "description": " Optional name of the errno constant.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "number": {
                                    "description": " The POSIX signal number.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "int64",
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count96 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count96:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " POSIX signal with optional extended data.\n\n On Apple systems, signals also carry a code in addition to the signal number describing the\n signal in more detail. On Linux, this code does not exist.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "code": {
                                "description": " An optional signal code present on Apple systems.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            "code_name": {
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "name": {
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "number": {
                                "description": " The POSIX signal number.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_nserror(data, custom_formats={}, name_prefix=None):
    data_any_of_count97 = 0
    if not data_any_of_count97:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "code": {
                                "description": " The error code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            "domain": {
                                "description": " A string containing the error domain.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "code" in data_keys:
                    data_keys.remove("code")
                    data__code = data["code"]
                    if (
                        not isinstance(data__code, (int, NoneType))
                        and not (
                            isinstance(data__code, float) and data__code.is_integer()
                        )
                        or isinstance(data__code, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".code must be integer or null",
                            value=data__code,
                            name="" + (name_prefix or "data") + ".code",
                            definition={
                                "description": " The error code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            rule="type",
                        )
                if "domain" in data_keys:
                    data_keys.remove("domain")
                    data__domain = data["domain"]
                    if not isinstance(data__domain, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".domain must be string or null",
                            value=data__domain,
                            name="" + (name_prefix or "data") + ".domain",
                            definition={
                                "description": " A string containing the error domain.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "code": {
                                    "description": " The error code.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "int64",
                                },
                                "domain": {
                                    "description": " A string containing the error domain.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count97 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count97:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " NSError informaiton.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "code": {
                                "description": " The error code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            "domain": {
                                "description": " A string containing the error domain.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_machexception(data, custom_formats={}, name_prefix=None):
    data_any_of_count98 = 0
    if not data_any_of_count98:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "code": {
                                "description": " The mach exception code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "exception": {
                                "description": " The mach exception type.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            "name": {
                                "description": " Optional name of the mach exception.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "subcode": {
                                "description": " The mach exception subcode.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "code" in data_keys:
                    data_keys.remove("code")
                    data__code = data["code"]
                    if (
                        not isinstance(data__code, (int, NoneType))
                        and not (
                            isinstance(data__code, float) and data__code.is_integer()
                        )
                        or isinstance(data__code, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".code must be integer or null",
                            value=data__code,
                            name="" + (name_prefix or "data") + ".code",
                            definition={
                                "description": " The mach exception code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__code, (int, float, Decimal)):
                        if data__code < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".code must be bigger than or equal to 0.0",
                                value=data__code,
                                name="" + (name_prefix or "data") + ".code",
                                definition={
                                    "description": " The mach exception code.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "exception" in data_keys:
                    data_keys.remove("exception")
                    data__exception = data["exception"]
                    if (
                        not isinstance(data__exception, (int, NoneType))
                        and not (
                            isinstance(data__exception, float)
                            and data__exception.is_integer()
                        )
                        or isinstance(data__exception, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".exception must be integer or null",
                            value=data__exception,
                            name="" + (name_prefix or "data") + ".exception",
                            definition={
                                "description": " The mach exception type.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            rule="type",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Optional name of the mach exception.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "subcode" in data_keys:
                    data_keys.remove("subcode")
                    data__subcode = data["subcode"]
                    if (
                        not isinstance(data__subcode, (int, NoneType))
                        and not (
                            isinstance(data__subcode, float)
                            and data__subcode.is_integer()
                        )
                        or isinstance(data__subcode, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".subcode must be integer or null",
                            value=data__subcode,
                            name="" + (name_prefix or "data") + ".subcode",
                            definition={
                                "description": " The mach exception subcode.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__subcode, (int, float, Decimal)):
                        if data__subcode < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".subcode must be bigger than or equal to 0.0",
                                value=data__subcode,
                                name="" + (name_prefix or "data") + ".subcode",
                                definition={
                                    "description": " The mach exception subcode.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "code": {
                                    "description": " The mach exception code.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "exception": {
                                    "description": " The mach exception type.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "int64",
                                },
                                "name": {
                                    "description": " Optional name of the mach exception.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "subcode": {
                                    "description": " The mach exception subcode.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count98 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count98:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Mach exception information.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "code": {
                                "description": " The mach exception code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "exception": {
                                "description": " The mach exception type.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            "name": {
                                "description": " Optional name of the mach exception.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "subcode": {
                                "description": " The mach exception subcode.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_cerror(data, custom_formats={}, name_prefix=None):
    data_any_of_count99 = 0
    if not data_any_of_count99:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "number": {
                                "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "number" in data_keys:
                    data_keys.remove("number")
                    data__number = data["number"]
                    if (
                        not isinstance(data__number, (int, NoneType))
                        and not (
                            isinstance(data__number, float)
                            and data__number.is_integer()
                        )
                        or isinstance(data__number, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".number must be integer or null",
                            value=data__number,
                            name="" + (name_prefix or "data") + ".number",
                            definition={
                                "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "name": {
                                    "description": " Optional name of the errno constant.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "number": {
                                    "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "int64",
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count99 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count99:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " POSIX signal with optional extended data.\n\n Error codes set by Linux system calls and some library functions as specified in ISO C99,\n POSIX.1-2001, and POSIX.1-2008. See\n [`errno(3)`](https://man7.org/linux/man-pages/man3/errno.3.html) for more information.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " Optional name of the errno constant.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "number": {
                                "description": " The error code as specified by ISO C99, POSIX.1-2001 or POSIX.1-2008.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "int64",
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_eventid(data, custom_formats={}, name_prefix=None):
    data_any_of_count100 = 0
    if not data_any_of_count100:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string", "format": "uuid"},
                    rule="type",
                )
            data_any_of_count100 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count100:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Wrapper around a UUID with slightly different formatting.",
                "anyOf": [{"type": "string", "format": "uuid"}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_eventprocessingerror(
    data, custom_formats={}, name_prefix=None
):
    data_any_of_count101 = 0
    if not data_any_of_count101:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["type"],
                        "properties": {
                            "name": {
                                "description": " Affected key or deep path.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "type": {
                                "description": " The error kind.",
                                "type": ["string", "null"],
                            },
                            "value": {
                                "description": " The original value causing this error.",
                                "default": None,
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["type"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["type"],
                            "properties": {
                                "name": {
                                    "description": " Affected key or deep path.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "type": {
                                    "description": " The error kind.",
                                    "type": ["string", "null"],
                                },
                                "value": {
                                    "description": " The original value causing this error.",
                                    "default": None,
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Affected key or deep path.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "type" in data_keys:
                    data_keys.remove("type")
                    data__type = data["type"]
                    if not isinstance(data__type, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".type must be string or null",
                            value=data__type,
                            name="" + (name_prefix or "data") + ".type",
                            definition={
                                "description": " The error kind.",
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "value" in data_keys:
                    data_keys.remove("value")
                    data__value = data["value"]
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["type"],
                            "properties": {
                                "name": {
                                    "description": " Affected key or deep path.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "type": {
                                    "description": " The error kind.",
                                    "type": ["string", "null"],
                                },
                                "value": {
                                    "description": " The original value causing this error.",
                                    "default": None,
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count101 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count101:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " An event processing error.",
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["type"],
                        "properties": {
                            "name": {
                                "description": " Affected key or deep path.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "type": {
                                "description": " The error kind.",
                                "type": ["string", "null"],
                            },
                            "value": {
                                "description": " The original value causing this error.",
                                "default": None,
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_debugmeta(data, custom_formats={}, name_prefix=None):
    data_any_of_count102 = 0
    if not data_any_of_count102:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "images": {
                                "description": " List of debug information files (debug images).",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " A debug information file (debug image).",
                                            "anyOf": [
                                                {
                                                    "$ref": "#/definitions/AppleDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/ProguardDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/SourceMapDebugImage"
                                                },
                                                {"$ref": "#/definitions/JvmDebugImage"},
                                                {
                                                    "type": "object",
                                                    "additionalProperties": True,
                                                },
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "sdk_info": {
                                "description": " Information about the system SDK (e.g. iOS SDK).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Holds information about the system SDK.\n\n This is relevant for iOS and other platforms that have a system\n SDK.  Not to be confused with the client SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "sdk_name": {
                                                        "description": " The internal name of the SDK.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "version_major": {
                                                        "description": " The major version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "version_minor": {
                                                        "description": " The minor version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "version_patchlevel": {
                                                        "description": " The patch version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "images" in data_keys:
                    data_keys.remove("images")
                    data__images = data["images"]
                    if not isinstance(data__images, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".images must be array or null",
                            value=data__images,
                            name="" + (name_prefix or "data") + ".images",
                            definition={
                                "description": " List of debug information files (debug images).",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " A debug information file (debug image).",
                                            "anyOf": [
                                                {
                                                    "$ref": "#/definitions/AppleDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/ProguardDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/SourceMapDebugImage"
                                                },
                                                {"$ref": "#/definitions/JvmDebugImage"},
                                                {
                                                    "type": "object",
                                                    "additionalProperties": True,
                                                },
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            rule="type",
                        )
                    data__images_is_list = isinstance(data__images, (list, tuple))
                    if data__images_is_list:
                        data__images_len = len(data__images)
                        for data__images_x, data__images_item in enumerate(
                            data__images
                        ):
                            data__images_item_any_of_count103 = 0
                            if not data__images_item_any_of_count103:
                                try:
                                    validate___definitions_debugimage(
                                        data__images_item,
                                        custom_formats,
                                        (name_prefix or "data")
                                        + ".images[{data__images_x}]".format(
                                            **locals()
                                        ),
                                    )
                                    data__images_item_any_of_count103 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__images_item_any_of_count103:
                                try:
                                    if not isinstance(data__images_item, (NoneType)):
                                        raise JsonSchemaValueException(
                                            ""
                                            + (name_prefix or "data")
                                            + ".images[{data__images_x}]".format(
                                                **locals()
                                            )
                                            + " must be null",
                                            value=data__images_item,
                                            name=""
                                            + (name_prefix or "data")
                                            + ".images[{data__images_x}]".format(
                                                **locals()
                                            )
                                            + "",
                                            definition={"type": "null"},
                                            rule="type",
                                        )
                                    data__images_item_any_of_count103 += 1
                                except JsonSchemaValueException:
                                    pass
                            if not data__images_item_any_of_count103:
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".images[{data__images_x}]".format(**locals())
                                    + " cannot be validated by any definition",
                                    value=data__images_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".images[{data__images_x}]".format(**locals())
                                    + "",
                                    definition={
                                        "anyOf": [
                                            {
                                                "description": " A debug information file (debug image).",
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/AppleDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/ProguardDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/SourceMapDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/JvmDebugImage"
                                                    },
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": True,
                                                    },
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                    rule="anyOf",
                                )
                if "sdk_info" in data_keys:
                    data_keys.remove("sdk_info")
                    data__sdkinfo = data["sdk_info"]
                    data__sdkinfo_any_of_count104 = 0
                    if not data__sdkinfo_any_of_count104:
                        try:
                            validate___definitions_systemsdkinfo(
                                data__sdkinfo,
                                custom_formats,
                                (name_prefix or "data") + ".sdk_info",
                            )
                            data__sdkinfo_any_of_count104 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__sdkinfo_any_of_count104:
                        try:
                            if not isinstance(data__sdkinfo, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".sdk_info must be null",
                                    value=data__sdkinfo,
                                    name="" + (name_prefix or "data") + ".sdk_info",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__sdkinfo_any_of_count104 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__sdkinfo_any_of_count104:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sdk_info cannot be validated by any definition",
                            value=data__sdkinfo,
                            name="" + (name_prefix or "data") + ".sdk_info",
                            definition={
                                "description": " Information about the system SDK (e.g. iOS SDK).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Holds information about the system SDK.\n\n This is relevant for iOS and other platforms that have a system\n SDK.  Not to be confused with the client SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "sdk_name": {
                                                        "description": " The internal name of the SDK.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "version_major": {
                                                        "description": " The major version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "version_minor": {
                                                        "description": " The minor version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "version_patchlevel": {
                                                        "description": " The patch version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "images": {
                                    "description": " List of debug information files (debug images).",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {
                                        "anyOf": [
                                            {
                                                "description": " A debug information file (debug image).",
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/definitions/AppleDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/ProguardDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/NativeDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/SourceMapDebugImage"
                                                    },
                                                    {
                                                        "$ref": "#/definitions/JvmDebugImage"
                                                    },
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": True,
                                                    },
                                                ],
                                            },
                                            {"type": "null"},
                                        ]
                                    },
                                },
                                "sdk_info": {
                                    "description": " Information about the system SDK (e.g. iOS SDK).",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Holds information about the system SDK.\n\n This is relevant for iOS and other platforms that have a system\n SDK.  Not to be confused with the client SDK.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "sdk_name": {
                                                            "description": " The internal name of the SDK.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "version_major": {
                                                            "description": " The major version of the SDK as integer or 0.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "version_minor": {
                                                            "description": " The minor version of the SDK as integer or 0.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                        "version_patchlevel": {
                                                            "description": " The patch version of the SDK as integer or 0.",
                                                            "default": None,
                                                            "type": ["integer", "null"],
                                                            "format": "uint64",
                                                            "minimum": 0.0,
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count102 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count102:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' Debugging and processing meta information.\n\n The debug meta interface carries debug information for processing errors and crash reports.\n Sentry amends the information in this interface.\n\n Example (look at field types to see more detail):\n\n ```json\n {\n   "debug_meta": {\n     "images": [],\n     "sdk_info": {\n       "sdk_name": "iOS",\n       "version_major": 10,\n       "version_minor": 3,\n       "version_patchlevel": 0\n     }\n   }\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "images": {
                                "description": " List of debug information files (debug images).",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {
                                    "anyOf": [
                                        {
                                            "description": " A debug information file (debug image).",
                                            "anyOf": [
                                                {
                                                    "$ref": "#/definitions/AppleDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/ProguardDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/NativeDebugImage"
                                                },
                                                {
                                                    "$ref": "#/definitions/SourceMapDebugImage"
                                                },
                                                {"$ref": "#/definitions/JvmDebugImage"},
                                                {
                                                    "type": "object",
                                                    "additionalProperties": True,
                                                },
                                            ],
                                        },
                                        {"type": "null"},
                                    ]
                                },
                            },
                            "sdk_info": {
                                "description": " Information about the system SDK (e.g. iOS SDK).",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Holds information about the system SDK.\n\n This is relevant for iOS and other platforms that have a system\n SDK.  Not to be confused with the client SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "sdk_name": {
                                                        "description": " The internal name of the SDK.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "version_major": {
                                                        "description": " The major version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "version_minor": {
                                                        "description": " The minor version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                    "version_patchlevel": {
                                                        "description": " The patch version of the SDK as integer or 0.",
                                                        "default": None,
                                                        "type": ["integer", "null"],
                                                        "format": "uint64",
                                                        "minimum": 0.0,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_systemsdkinfo(data, custom_formats={}, name_prefix=None):
    data_any_of_count105 = 0
    if not data_any_of_count105:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "sdk_name": {
                                "description": " The internal name of the SDK.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version_major": {
                                "description": " The major version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "version_minor": {
                                "description": " The minor version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "version_patchlevel": {
                                "description": " The patch version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "sdk_name" in data_keys:
                    data_keys.remove("sdk_name")
                    data__sdkname = data["sdk_name"]
                    if not isinstance(data__sdkname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sdk_name must be string or null",
                            value=data__sdkname,
                            name="" + (name_prefix or "data") + ".sdk_name",
                            definition={
                                "description": " The internal name of the SDK.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "version_major" in data_keys:
                    data_keys.remove("version_major")
                    data__versionmajor = data["version_major"]
                    if (
                        not isinstance(data__versionmajor, (int, NoneType))
                        and not (
                            isinstance(data__versionmajor, float)
                            and data__versionmajor.is_integer()
                        )
                        or isinstance(data__versionmajor, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version_major must be integer or null",
                            value=data__versionmajor,
                            name="" + (name_prefix or "data") + ".version_major",
                            definition={
                                "description": " The major version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__versionmajor, (int, float, Decimal)):
                        if data__versionmajor < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".version_major must be bigger than or equal to 0.0",
                                value=data__versionmajor,
                                name="" + (name_prefix or "data") + ".version_major",
                                definition={
                                    "description": " The major version of the SDK as integer or 0.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "version_minor" in data_keys:
                    data_keys.remove("version_minor")
                    data__versionminor = data["version_minor"]
                    if (
                        not isinstance(data__versionminor, (int, NoneType))
                        and not (
                            isinstance(data__versionminor, float)
                            and data__versionminor.is_integer()
                        )
                        or isinstance(data__versionminor, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version_minor must be integer or null",
                            value=data__versionminor,
                            name="" + (name_prefix or "data") + ".version_minor",
                            definition={
                                "description": " The minor version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__versionminor, (int, float, Decimal)):
                        if data__versionminor < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".version_minor must be bigger than or equal to 0.0",
                                value=data__versionminor,
                                name="" + (name_prefix or "data") + ".version_minor",
                                definition={
                                    "description": " The minor version of the SDK as integer or 0.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "version_patchlevel" in data_keys:
                    data_keys.remove("version_patchlevel")
                    data__versionpatchlevel = data["version_patchlevel"]
                    if (
                        not isinstance(data__versionpatchlevel, (int, NoneType))
                        and not (
                            isinstance(data__versionpatchlevel, float)
                            and data__versionpatchlevel.is_integer()
                        )
                        or isinstance(data__versionpatchlevel, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version_patchlevel must be integer or null",
                            value=data__versionpatchlevel,
                            name="" + (name_prefix or "data") + ".version_patchlevel",
                            definition={
                                "description": " The patch version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__versionpatchlevel, (int, float, Decimal)):
                        if data__versionpatchlevel < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".version_patchlevel must be bigger than or equal to 0.0",
                                value=data__versionpatchlevel,
                                name=""
                                + (name_prefix or "data")
                                + ".version_patchlevel",
                                definition={
                                    "description": " The patch version of the SDK as integer or 0.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "sdk_name": {
                                    "description": " The internal name of the SDK.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "version_major": {
                                    "description": " The major version of the SDK as integer or 0.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "version_minor": {
                                    "description": " The minor version of the SDK as integer or 0.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "version_patchlevel": {
                                    "description": " The patch version of the SDK as integer or 0.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count105 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count105:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Holds information about the system SDK.\n\n This is relevant for iOS and other platforms that have a system\n SDK.  Not to be confused with the client SDK.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "sdk_name": {
                                "description": " The internal name of the SDK.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version_major": {
                                "description": " The major version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "version_minor": {
                                "description": " The minor version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "version_patchlevel": {
                                "description": " The patch version of the SDK as integer or 0.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_debugimage(data, custom_formats={}, name_prefix=None):
    data_any_of_count106 = 0
    if not data_any_of_count106:
        try:
            validate___definitions_appledebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_nativedebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_nativedebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_nativedebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_nativedebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_nativedebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_proguarddebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_nativedebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_sourcemapdebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            validate___definitions_jvmdebugimage(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "object", "additionalProperties": True},
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
            data_any_of_count106 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count106:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " A debug information file (debug image).",
                "anyOf": [
                    {
                        "description": " Legacy apple debug images (MachO).\n\n This was also used for non-apple platforms with similar debug setups.",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": [
                                    "image_addr",
                                    "image_size",
                                    "name",
                                    "uuid",
                                ],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cpu_subtype": {
                                        "description": " MachO CPU subtype identifier.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "cpu_type": {
                                        "description": " MachO CPU type identifier.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_addr": {
                                        "description": " Starting memory address of the image (required).",
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).",
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "name": {
                                        "description": " Path and name of the debug image (required).",
                                        "type": ["string", "null"],
                                    },
                                    "uuid": {
                                        "description": " The unique UUID of the image.",
                                        "type": ["string", "null"],
                                        "format": "uuid",
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "code_file": {
                                        "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "code_id": {
                                        "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/CodeId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_checksum": {
                                        "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/DebugId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_addr": {
                                        "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "code_file": {
                                        "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "code_id": {
                                        "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/CodeId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_checksum": {
                                        "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/DebugId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_addr": {
                                        "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "code_file": {
                                        "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "code_id": {
                                        "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/CodeId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_checksum": {
                                        "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/DebugId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_addr": {
                                        "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "code_file": {
                                        "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "code_id": {
                                        "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/CodeId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_checksum": {
                                        "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/DebugId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_addr": {
                                        "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "code_file": {
                                        "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "code_id": {
                                        "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/CodeId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_checksum": {
                                        "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/DebugId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_addr": {
                                        "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Proguard mapping file.\n\n Proguard images refer to `mapping.txt` files generated when Proguard obfuscates function names. The Java SDK integrations assign this file a unique identifier, which has to be included in the list of images.",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["uuid"],
                                "properties": {
                                    "uuid": {
                                        "description": " UUID computed from the file contents, assigned by the Java SDK.",
                                        "type": ["string", "null"],
                                        "format": "uuid",
                                    }
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "arch": {
                                        "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "code_file": {
                                        "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "code_id": {
                                        "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/CodeId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_checksum": {
                                        "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/NativeImagePath"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/DebugId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_addr": {
                                        "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "image_size": {
                                        "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "image_vmaddr": {
                                        "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Addr"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' A debug image pointing to a source map.\n\n Examples:\n\n ```json\n {\n   "type": "sourcemap",\n   "code_file": "https://example.com/static/js/main.min.js",\n   "debug_id": "395835f4-03e0-4436-80d3-136f0749a893"\n }\n ```\n\n **Note:** Stack frames and the correlating entries in the debug image here\n for `code_file`/`abs_path` are not PII stripped as they need to line up\n perfectly for source map processing.',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["code_file", "debug_id"],
                                "properties": {
                                    "code_file": {
                                        "description": " Path and name of the image file as URL. (required).\n\n The absolute path to the minified JavaScript file.  This helps to correlate the file to the stack trace.",
                                        "type": ["string", "null"],
                                    },
                                    "debug_file": {
                                        "description": " Path and name of the associated source map.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "debug_id": {
                                        "description": " Unique debug identifier of the source map.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/DebugId"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' A debug image consisting of source files for a JVM based language.\n\n Examples:\n\n ```json\n {\n   "type": "jvm",\n   "debug_id": "395835f4-03e0-4436-80d3-136f0749a893"\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["debug_id"],
                                "properties": {
                                    "debug_id": {
                                        "description": " Unique debug identifier of the bundle.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/DebugId"},
                                            {"type": "null"},
                                        ],
                                    }
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {"type": "object", "additionalProperties": True},
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_jvmdebugimage(data, custom_formats={}, name_prefix=None):
    data_any_of_count107 = 0
    if not data_any_of_count107:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["debug_id"],
                        "properties": {
                            "debug_id": {
                                "description": " Unique debug identifier of the bundle.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            }
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["debug_id"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["debug_id"],
                            "properties": {
                                "debug_id": {
                                    "description": " Unique debug identifier of the bundle.",
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                }
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "debug_id" in data_keys:
                    data_keys.remove("debug_id")
                    data__debugid = data["debug_id"]
                    data__debugid_any_of_count108 = 0
                    if not data__debugid_any_of_count108:
                        try:
                            validate___definitions_debugid(
                                data__debugid,
                                custom_formats,
                                (name_prefix or "data") + ".debug_id",
                            )
                            data__debugid_any_of_count108 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugid_any_of_count108:
                        try:
                            if not isinstance(data__debugid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".debug_id must be null",
                                    value=data__debugid,
                                    name="" + (name_prefix or "data") + ".debug_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__debugid_any_of_count108 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugid_any_of_count108:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".debug_id cannot be validated by any definition",
                            value=data__debugid,
                            name="" + (name_prefix or "data") + ".debug_id",
                            definition={
                                "description": " Unique debug identifier of the bundle.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["debug_id"],
                            "properties": {
                                "debug_id": {
                                    "description": " Unique debug identifier of the bundle.",
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                }
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count107 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count107:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A debug image consisting of source files for a JVM based language.\n\n Examples:\n\n ```json\n {\n   "type": "jvm",\n   "debug_id": "395835f4-03e0-4436-80d3-136f0749a893"\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["debug_id"],
                        "properties": {
                            "debug_id": {
                                "description": " Unique debug identifier of the bundle.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            }
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_debugid(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={"type": "string"},
            rule="type",
        )
    return data


def validate___definitions_sourcemapdebugimage(
    data, custom_formats={}, name_prefix=None
):
    data_any_of_count109 = 0
    if not data_any_of_count109:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["code_file", "debug_id"],
                        "properties": {
                            "code_file": {
                                "description": " Path and name of the image file as URL. (required).\n\n The absolute path to the minified JavaScript file.  This helps to correlate the file to the stack trace.",
                                "type": ["string", "null"],
                            },
                            "debug_file": {
                                "description": " Path and name of the associated source map.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "debug_id": {
                                "description": " Unique debug identifier of the source map.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["code_file", "debug_id"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["code_file", "debug_id"],
                            "properties": {
                                "code_file": {
                                    "description": " Path and name of the image file as URL. (required).\n\n The absolute path to the minified JavaScript file.  This helps to correlate the file to the stack trace.",
                                    "type": ["string", "null"],
                                },
                                "debug_file": {
                                    "description": " Path and name of the associated source map.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "debug_id": {
                                    "description": " Unique debug identifier of the source map.",
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "code_file" in data_keys:
                    data_keys.remove("code_file")
                    data__codefile = data["code_file"]
                    if not isinstance(data__codefile, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".code_file must be string or null",
                            value=data__codefile,
                            name="" + (name_prefix or "data") + ".code_file",
                            definition={
                                "description": " Path and name of the image file as URL. (required).\n\n The absolute path to the minified JavaScript file.  This helps to correlate the file to the stack trace.",
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "debug_file" in data_keys:
                    data_keys.remove("debug_file")
                    data__debugfile = data["debug_file"]
                    if not isinstance(data__debugfile, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".debug_file must be string or null",
                            value=data__debugfile,
                            name="" + (name_prefix or "data") + ".debug_file",
                            definition={
                                "description": " Path and name of the associated source map.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "debug_id" in data_keys:
                    data_keys.remove("debug_id")
                    data__debugid = data["debug_id"]
                    data__debugid_any_of_count110 = 0
                    if not data__debugid_any_of_count110:
                        try:
                            validate___definitions_debugid(
                                data__debugid,
                                custom_formats,
                                (name_prefix or "data") + ".debug_id",
                            )
                            data__debugid_any_of_count110 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugid_any_of_count110:
                        try:
                            if not isinstance(data__debugid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".debug_id must be null",
                                    value=data__debugid,
                                    name="" + (name_prefix or "data") + ".debug_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__debugid_any_of_count110 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugid_any_of_count110:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".debug_id cannot be validated by any definition",
                            value=data__debugid,
                            name="" + (name_prefix or "data") + ".debug_id",
                            definition={
                                "description": " Unique debug identifier of the source map.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["code_file", "debug_id"],
                            "properties": {
                                "code_file": {
                                    "description": " Path and name of the image file as URL. (required).\n\n The absolute path to the minified JavaScript file.  This helps to correlate the file to the stack trace.",
                                    "type": ["string", "null"],
                                },
                                "debug_file": {
                                    "description": " Path and name of the associated source map.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "debug_id": {
                                    "description": " Unique debug identifier of the source map.",
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count109 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count109:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A debug image pointing to a source map.\n\n Examples:\n\n ```json\n {\n   "type": "sourcemap",\n   "code_file": "https://example.com/static/js/main.min.js",\n   "debug_id": "395835f4-03e0-4436-80d3-136f0749a893"\n }\n ```\n\n **Note:** Stack frames and the correlating entries in the debug image here\n for `code_file`/`abs_path` are not PII stripped as they need to line up\n perfectly for source map processing.',
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["code_file", "debug_id"],
                        "properties": {
                            "code_file": {
                                "description": " Path and name of the image file as URL. (required).\n\n The absolute path to the minified JavaScript file.  This helps to correlate the file to the stack trace.",
                                "type": ["string", "null"],
                            },
                            "debug_file": {
                                "description": " Path and name of the associated source map.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "debug_id": {
                                "description": " Unique debug identifier of the source map.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_proguarddebugimage(
    data, custom_formats={}, name_prefix=None
):
    data_any_of_count111 = 0
    if not data_any_of_count111:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["uuid"],
                        "properties": {
                            "uuid": {
                                "description": " UUID computed from the file contents, assigned by the Java SDK.",
                                "type": ["string", "null"],
                                "format": "uuid",
                            }
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["uuid"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["uuid"],
                            "properties": {
                                "uuid": {
                                    "description": " UUID computed from the file contents, assigned by the Java SDK.",
                                    "type": ["string", "null"],
                                    "format": "uuid",
                                }
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "uuid" in data_keys:
                    data_keys.remove("uuid")
                    data__uuid = data["uuid"]
                    if not isinstance(data__uuid, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".uuid must be string or null",
                            value=data__uuid,
                            name="" + (name_prefix or "data") + ".uuid",
                            definition={
                                "description": " UUID computed from the file contents, assigned by the Java SDK.",
                                "type": ["string", "null"],
                                "format": "uuid",
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["uuid"],
                            "properties": {
                                "uuid": {
                                    "description": " UUID computed from the file contents, assigned by the Java SDK.",
                                    "type": ["string", "null"],
                                    "format": "uuid",
                                }
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count111 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count111:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Proguard mapping file.\n\n Proguard images refer to `mapping.txt` files generated when Proguard obfuscates function names. The Java SDK integrations assign this file a unique identifier, which has to be included in the list of images.",
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["uuid"],
                        "properties": {
                            "uuid": {
                                "description": " UUID computed from the file contents, assigned by the Java SDK.",
                                "type": ["string", "null"],
                                "format": "uuid",
                            }
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_nativedebugimage(data, custom_formats={}, name_prefix=None):
    data_any_of_count112 = 0
    if not data_any_of_count112:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["code_file", "debug_id"],
                        "properties": {
                            "arch": {
                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "code_file": {
                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "code_id": {
                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "debug_checksum": {
                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "debug_file": {
                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "debug_id": {
                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "image_addr": {
                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "image_size": {
                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "image_vmaddr": {
                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["code_file", "debug_id"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["code_file", "debug_id"],
                            "properties": {
                                "arch": {
                                    "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "code_file": {
                                    "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                    "anyOf": [
                                        {
                                            "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "code_id": {
                                    "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "debug_checksum": {
                                    "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "debug_file": {
                                    "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "debug_id": {
                                    "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "image_addr": {
                                    "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "image_size": {
                                    "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "image_vmaddr": {
                                    "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "arch" in data_keys:
                    data_keys.remove("arch")
                    data__arch = data["arch"]
                    if not isinstance(data__arch, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".arch must be string or null",
                            value=data__arch,
                            name="" + (name_prefix or "data") + ".arch",
                            definition={
                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "code_file" in data_keys:
                    data_keys.remove("code_file")
                    data__codefile = data["code_file"]
                    data__codefile_any_of_count113 = 0
                    if not data__codefile_any_of_count113:
                        try:
                            validate___definitions_nativeimagepath(
                                data__codefile,
                                custom_formats,
                                (name_prefix or "data") + ".code_file",
                            )
                            data__codefile_any_of_count113 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__codefile_any_of_count113:
                        try:
                            if not isinstance(data__codefile, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".code_file must be null",
                                    value=data__codefile,
                                    name="" + (name_prefix or "data") + ".code_file",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__codefile_any_of_count113 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__codefile_any_of_count113:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".code_file cannot be validated by any definition",
                            value=data__codefile,
                            name="" + (name_prefix or "data") + ".code_file",
                            definition={
                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "code_id" in data_keys:
                    data_keys.remove("code_id")
                    data__codeid = data["code_id"]
                    data__codeid_any_of_count114 = 0
                    if not data__codeid_any_of_count114:
                        try:
                            validate___definitions_codeid(
                                data__codeid,
                                custom_formats,
                                (name_prefix or "data") + ".code_id",
                            )
                            data__codeid_any_of_count114 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__codeid_any_of_count114:
                        try:
                            if not isinstance(data__codeid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".code_id must be null",
                                    value=data__codeid,
                                    name="" + (name_prefix or "data") + ".code_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__codeid_any_of_count114 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__codeid_any_of_count114:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".code_id cannot be validated by any definition",
                            value=data__codeid,
                            name="" + (name_prefix or "data") + ".code_id",
                            definition={
                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "debug_checksum" in data_keys:
                    data_keys.remove("debug_checksum")
                    data__debugchecksum = data["debug_checksum"]
                    if not isinstance(data__debugchecksum, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".debug_checksum must be string or null",
                            value=data__debugchecksum,
                            name="" + (name_prefix or "data") + ".debug_checksum",
                            definition={
                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "debug_file" in data_keys:
                    data_keys.remove("debug_file")
                    data__debugfile = data["debug_file"]
                    data__debugfile_any_of_count115 = 0
                    if not data__debugfile_any_of_count115:
                        try:
                            validate___definitions_nativeimagepath(
                                data__debugfile,
                                custom_formats,
                                (name_prefix or "data") + ".debug_file",
                            )
                            data__debugfile_any_of_count115 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugfile_any_of_count115:
                        try:
                            if not isinstance(data__debugfile, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".debug_file must be null",
                                    value=data__debugfile,
                                    name="" + (name_prefix or "data") + ".debug_file",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__debugfile_any_of_count115 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugfile_any_of_count115:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".debug_file cannot be validated by any definition",
                            value=data__debugfile,
                            name="" + (name_prefix or "data") + ".debug_file",
                            definition={
                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "debug_id" in data_keys:
                    data_keys.remove("debug_id")
                    data__debugid = data["debug_id"]
                    data__debugid_any_of_count116 = 0
                    if not data__debugid_any_of_count116:
                        try:
                            validate___definitions_debugid(
                                data__debugid,
                                custom_formats,
                                (name_prefix or "data") + ".debug_id",
                            )
                            data__debugid_any_of_count116 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugid_any_of_count116:
                        try:
                            if not isinstance(data__debugid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".debug_id must be null",
                                    value=data__debugid,
                                    name="" + (name_prefix or "data") + ".debug_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__debugid_any_of_count116 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__debugid_any_of_count116:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".debug_id cannot be validated by any definition",
                            value=data__debugid,
                            name="" + (name_prefix or "data") + ".debug_id",
                            definition={
                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "image_addr" in data_keys:
                    data_keys.remove("image_addr")
                    data__imageaddr = data["image_addr"]
                    data__imageaddr_any_of_count117 = 0
                    if not data__imageaddr_any_of_count117:
                        try:
                            validate___definitions_addr(
                                data__imageaddr,
                                custom_formats,
                                (name_prefix or "data") + ".image_addr",
                            )
                            data__imageaddr_any_of_count117 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imageaddr_any_of_count117:
                        try:
                            if not isinstance(data__imageaddr, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".image_addr must be null",
                                    value=data__imageaddr,
                                    name="" + (name_prefix or "data") + ".image_addr",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__imageaddr_any_of_count117 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imageaddr_any_of_count117:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".image_addr cannot be validated by any definition",
                            value=data__imageaddr,
                            name="" + (name_prefix or "data") + ".image_addr",
                            definition={
                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "image_size" in data_keys:
                    data_keys.remove("image_size")
                    data__imagesize = data["image_size"]
                    if (
                        not isinstance(data__imagesize, (int, NoneType))
                        and not (
                            isinstance(data__imagesize, float)
                            and data__imagesize.is_integer()
                        )
                        or isinstance(data__imagesize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".image_size must be integer or null",
                            value=data__imagesize,
                            name="" + (name_prefix or "data") + ".image_size",
                            definition={
                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__imagesize, (int, float, Decimal)):
                        if data__imagesize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".image_size must be bigger than or equal to 0.0",
                                value=data__imagesize,
                                name="" + (name_prefix or "data") + ".image_size",
                                definition={
                                    "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "image_vmaddr" in data_keys:
                    data_keys.remove("image_vmaddr")
                    data__imagevmaddr = data["image_vmaddr"]
                    data__imagevmaddr_any_of_count118 = 0
                    if not data__imagevmaddr_any_of_count118:
                        try:
                            validate___definitions_addr(
                                data__imagevmaddr,
                                custom_formats,
                                (name_prefix or "data") + ".image_vmaddr",
                            )
                            data__imagevmaddr_any_of_count118 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imagevmaddr_any_of_count118:
                        try:
                            if not isinstance(data__imagevmaddr, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".image_vmaddr must be null",
                                    value=data__imagevmaddr,
                                    name="" + (name_prefix or "data") + ".image_vmaddr",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__imagevmaddr_any_of_count118 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imagevmaddr_any_of_count118:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".image_vmaddr cannot be validated by any definition",
                            value=data__imagevmaddr,
                            name="" + (name_prefix or "data") + ".image_vmaddr",
                            definition={
                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["code_file", "debug_id"],
                            "properties": {
                                "arch": {
                                    "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "code_file": {
                                    "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                    "anyOf": [
                                        {
                                            "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "code_id": {
                                    "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "debug_checksum": {
                                    "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "debug_file": {
                                    "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "debug_id": {
                                    "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "image_addr": {
                                    "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "image_size": {
                                    "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "image_vmaddr": {
                                    "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count112 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count112:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' A generic (new-style) native platform debug information file.\n\n The `type` key must be one of:\n\n - `macho`\n - `elf`: ELF images are used on Linux platforms. Their structure is identical to other native images.\n - `pe`\n\n Examples:\n\n ```json\n {\n   "type": "elf",\n   "code_id": "68220ae2c65d65c1b6aaa12fa6765a6ec2f5f434",\n   "code_file": "/lib/x86_64-linux-gnu/libgcc_s.so.1",\n   "debug_id": "e20a2268-5dc6-c165-b6aa-a12fa6765a6e",\n   "image_addr": "0x7f5140527000",\n   "image_size": 90112,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64"\n }\n ```\n\n ```json\n {\n   "type": "pe",\n   "code_id": "57898e12145000",\n   "code_file": "C:\\\\Windows\\\\System32\\\\dbghelp.dll",\n   "debug_id": "9c2a902b-6fdf-40ad-8308-588a41d572a0-1",\n   "debug_file": "dbghelp.pdb",\n   "image_addr": "0x70850000",\n   "image_size": "1331200",\n   "image_vmaddr": "0x40000",\n   "arch": "x86"\n }\n ```\n\n ```json\n {\n   "type": "macho",\n   "debug_id": "84a04d24-0e60-3810-a8c0-90a65e2df61a",\n   "debug_file": "libDiagnosticMessagesClient.dylib",\n   "code_file": "/usr/lib/libDiagnosticMessagesClient.dylib",\n   "image_addr": "0x7fffe668e000",\n   "image_size": 8192,\n   "image_vmaddr": "0x40000",\n   "arch": "x86_64",\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["code_file", "debug_id"],
                        "properties": {
                            "arch": {
                                "description": " CPU architecture target.\n\n Architecture of the module. If missing, this will be backfilled by Sentry.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "code_file": {
                                "description": " Path and name of the image file (required).\n\n The absolute path to the dynamic library or executable. This helps to locate the file if it is missing on Sentry.\n\n - `pe`: The code file should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.",
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "code_id": {
                                "description": " Optional identifier of the code file.\n\n - `elf`: If the program was compiled with a relatively recent compiler, this should be the hex representation of the `NT_GNU_BUILD_ID` program header (type `PT_NOTE`), or the value of the `.note.gnu.build-id` note section (type `SHT_NOTE`). Otherwise, leave this value empty.\n\n   Certain symbol servers use the code identifier to locate debug information for ELF images, in which case this field should be included if possible.\n\n - `pe`: Identifier of the executable or DLL. It contains the values of the `time_date_stamp` from the COFF header and `size_of_image` from the optional header formatted together into a hex string using `%08x%X` (note that the second value is not padded):\n\n   ```text\n   time_date_stamp: 0x5ab38077\n   size_of_image:           0x9000\n   code_id:           5ab380779000\n   ```\n\n   The code identifier should be provided to allow server-side stack walking of binary crash reports, such as Minidumps.\n\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID. Can be empty for Mach images, as it is equivalent to the debug identifier.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "debug_checksum": {
                                "description": " The optional checksum of the debug companion file.\n\n - `pe_dotnet`: This is the hash algorithm and hex-formatted checksum of the associated PDB file.\n   This should have the format `$algorithm:$hash`, for example `SHA256:aabbccddeeff...`.\n\n   See: <https://github.com/dotnet/runtime/blob/main/docs/design/specs/PE-COFF.md#pdb-checksum-debug-directory-entry-type-19>",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "debug_file": {
                                "description": " Path and name of the debug companion file.\n\n - `elf`: Name or absolute path to the file containing stripped debug information for this image. This value might be _required_ to retrieve debug files from certain symbol servers.\n\n - `pe`: Name of the PDB file containing debug information for this image. This value is often required to retrieve debug files from specific symbol servers.\n\n - `macho`: Name or absolute path to the dSYM file containing debug information for this image. This value might be required to retrieve debug files from certain symbol servers.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A type for strings that are generally paths, might contain system user names, but still cannot\n be stripped liberally because it would break processing for certain platforms.\n\n Those strings get special treatment in our PII processor to avoid stripping the basename.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "debug_id": {
                                "description": " Unique debug identifier of the image.\n\n - `elf`: Debug identifier of the dynamic library or executable. If a code identifier is available, the debug identifier is the little-endian UUID representation of the first 16-bytes of that\n   identifier. Spaces are inserted for readability, note the byte order of the first fields:\n\n   ```text\n   code id:  f1c3bcc0 2798 65fe 3058 404b2831d9e6 4135386c\n   debug id: c0bcc3f1-9827-fe65-3058-404b2831d9e6\n   ```\n\n   If no code id is available, the debug id should be computed by XORing the first 4096 bytes of the `.text` section in 16-byte chunks, and representing it as a little-endian UUID (again swapping the byte order).\n\n - `pe`: `signature` and `age` of the PDB file. Both values can be read from the CodeView PDB70 debug information header in the PE. The value should be represented as little-endian UUID, with the age appended at the end. Note that the byte order of the UUID fields must be swapped (spaces inserted for readability):\n\n   ```text\n   signature: f1c3bcc0 2798 65fe 3058 404b2831d9e6\n   age:                                            1\n   debug_id:  c0bcc3f1-9827-fe65-3058-404b2831d9e6-1\n   ```\n\n - `macho`: Identifier of the dynamic library or executable. It is the value of the `LC_UUID` load command in the Mach header, formatted as UUID.",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "image_addr": {
                                "description": ' Starting memory address of the image (required).\n\n Memory address, at which the image is mounted in the virtual address space of the process. Should be a string in hex representation prefixed with `"0x"`.',
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "image_size": {
                                "description": " Size of the image in bytes (required).\n\n The size of the image in virtual memory. If missing, Sentry will assume that the image spans up to the next image, which might lead to invalid stack traces.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "image_vmaddr": {
                                "description": " Loading address in virtual memory.\n\n Preferred load address of the image in virtual memory, as declared in the headers of the\n image. When loading an image, the operating system may still choose to place it at a\n different address.\n\n Symbols and addresses in the native image are always relative to the start of the image and do not consider the preferred load address. It is merely a hint to the loader.\n\n - `elf`/`macho`: If this value is non-zero, all symbols and addresses declared in the native image start at this address, rather than 0. By contrast, Sentry deals with addresses relative to the start of the image. For example, with `image_vmaddr: 0x40000`, a symbol located at `0x401000` has a relative address of `0x1000`.\n\n   Relative addresses used in Apple Crash Reports and `addr2line` are usually in the preferred address space, and not relative address space.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_codeid(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={"type": "string"},
            rule="type",
        )
    return data


def validate___definitions_appledebugimage(data, custom_formats={}, name_prefix=None):
    data_any_of_count119 = 0
    if not data_any_of_count119:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["image_addr", "image_size", "name", "uuid"],
                        "properties": {
                            "arch": {
                                "description": " CPU architecture target.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cpu_subtype": {
                                "description": " MachO CPU subtype identifier.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "cpu_type": {
                                "description": " MachO CPU type identifier.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "image_addr": {
                                "description": " Starting memory address of the image (required).",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "image_size": {
                                "description": " Size of the image in bytes (required).",
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "image_vmaddr": {
                                "description": " Loading address in virtual memory.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "name": {
                                "description": " Path and name of the debug image (required).",
                                "type": ["string", "null"],
                            },
                            "uuid": {
                                "description": " The unique UUID of the image.",
                                "type": ["string", "null"],
                                "format": "uuid",
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = (
                    set(["image_addr", "image_size", "name", "uuid"]) - data.keys()
                )
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["image_addr", "image_size", "name", "uuid"],
                            "properties": {
                                "arch": {
                                    "description": " CPU architecture target.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "cpu_subtype": {
                                    "description": " MachO CPU subtype identifier.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "cpu_type": {
                                    "description": " MachO CPU type identifier.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "image_addr": {
                                    "description": " Starting memory address of the image (required).",
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "image_size": {
                                    "description": " Size of the image in bytes (required).",
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "image_vmaddr": {
                                    "description": " Loading address in virtual memory.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "name": {
                                    "description": " Path and name of the debug image (required).",
                                    "type": ["string", "null"],
                                },
                                "uuid": {
                                    "description": " The unique UUID of the image.",
                                    "type": ["string", "null"],
                                    "format": "uuid",
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "arch" in data_keys:
                    data_keys.remove("arch")
                    data__arch = data["arch"]
                    if not isinstance(data__arch, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".arch must be string or null",
                            value=data__arch,
                            name="" + (name_prefix or "data") + ".arch",
                            definition={
                                "description": " CPU architecture target.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "cpu_subtype" in data_keys:
                    data_keys.remove("cpu_subtype")
                    data__cpusubtype = data["cpu_subtype"]
                    if (
                        not isinstance(data__cpusubtype, (int, NoneType))
                        and not (
                            isinstance(data__cpusubtype, float)
                            and data__cpusubtype.is_integer()
                        )
                        or isinstance(data__cpusubtype, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cpu_subtype must be integer or null",
                            value=data__cpusubtype,
                            name="" + (name_prefix or "data") + ".cpu_subtype",
                            definition={
                                "description": " MachO CPU subtype identifier.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__cpusubtype, (int, float, Decimal)):
                        if data__cpusubtype < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".cpu_subtype must be bigger than or equal to 0.0",
                                value=data__cpusubtype,
                                name="" + (name_prefix or "data") + ".cpu_subtype",
                                definition={
                                    "description": " MachO CPU subtype identifier.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "cpu_type" in data_keys:
                    data_keys.remove("cpu_type")
                    data__cputype = data["cpu_type"]
                    if (
                        not isinstance(data__cputype, (int, NoneType))
                        and not (
                            isinstance(data__cputype, float)
                            and data__cputype.is_integer()
                        )
                        or isinstance(data__cputype, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cpu_type must be integer or null",
                            value=data__cputype,
                            name="" + (name_prefix or "data") + ".cpu_type",
                            definition={
                                "description": " MachO CPU type identifier.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__cputype, (int, float, Decimal)):
                        if data__cputype < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".cpu_type must be bigger than or equal to 0.0",
                                value=data__cputype,
                                name="" + (name_prefix or "data") + ".cpu_type",
                                definition={
                                    "description": " MachO CPU type identifier.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "image_addr" in data_keys:
                    data_keys.remove("image_addr")
                    data__imageaddr = data["image_addr"]
                    data__imageaddr_any_of_count120 = 0
                    if not data__imageaddr_any_of_count120:
                        try:
                            validate___definitions_addr(
                                data__imageaddr,
                                custom_formats,
                                (name_prefix or "data") + ".image_addr",
                            )
                            data__imageaddr_any_of_count120 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imageaddr_any_of_count120:
                        try:
                            if not isinstance(data__imageaddr, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".image_addr must be null",
                                    value=data__imageaddr,
                                    name="" + (name_prefix or "data") + ".image_addr",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__imageaddr_any_of_count120 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imageaddr_any_of_count120:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".image_addr cannot be validated by any definition",
                            value=data__imageaddr,
                            name="" + (name_prefix or "data") + ".image_addr",
                            definition={
                                "description": " Starting memory address of the image (required).",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "image_size" in data_keys:
                    data_keys.remove("image_size")
                    data__imagesize = data["image_size"]
                    if (
                        not isinstance(data__imagesize, (int, NoneType))
                        and not (
                            isinstance(data__imagesize, float)
                            and data__imagesize.is_integer()
                        )
                        or isinstance(data__imagesize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".image_size must be integer or null",
                            value=data__imagesize,
                            name="" + (name_prefix or "data") + ".image_size",
                            definition={
                                "description": " Size of the image in bytes (required).",
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__imagesize, (int, float, Decimal)):
                        if data__imagesize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".image_size must be bigger than or equal to 0.0",
                                value=data__imagesize,
                                name="" + (name_prefix or "data") + ".image_size",
                                definition={
                                    "description": " Size of the image in bytes (required).",
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "image_vmaddr" in data_keys:
                    data_keys.remove("image_vmaddr")
                    data__imagevmaddr = data["image_vmaddr"]
                    data__imagevmaddr_any_of_count121 = 0
                    if not data__imagevmaddr_any_of_count121:
                        try:
                            validate___definitions_addr(
                                data__imagevmaddr,
                                custom_formats,
                                (name_prefix or "data") + ".image_vmaddr",
                            )
                            data__imagevmaddr_any_of_count121 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imagevmaddr_any_of_count121:
                        try:
                            if not isinstance(data__imagevmaddr, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".image_vmaddr must be null",
                                    value=data__imagevmaddr,
                                    name="" + (name_prefix or "data") + ".image_vmaddr",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__imagevmaddr_any_of_count121 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__imagevmaddr_any_of_count121:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".image_vmaddr cannot be validated by any definition",
                            value=data__imagevmaddr,
                            name="" + (name_prefix or "data") + ".image_vmaddr",
                            definition={
                                "description": " Loading address in virtual memory.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Path and name of the debug image (required).",
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "uuid" in data_keys:
                    data_keys.remove("uuid")
                    data__uuid = data["uuid"]
                    if not isinstance(data__uuid, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".uuid must be string or null",
                            value=data__uuid,
                            name="" + (name_prefix or "data") + ".uuid",
                            definition={
                                "description": " The unique UUID of the image.",
                                "type": ["string", "null"],
                                "format": "uuid",
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["image_addr", "image_size", "name", "uuid"],
                            "properties": {
                                "arch": {
                                    "description": " CPU architecture target.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "cpu_subtype": {
                                    "description": " MachO CPU subtype identifier.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "cpu_type": {
                                    "description": " MachO CPU type identifier.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "image_addr": {
                                    "description": " Starting memory address of the image (required).",
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "image_size": {
                                    "description": " Size of the image in bytes (required).",
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "image_vmaddr": {
                                    "description": " Loading address in virtual memory.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                                "name": {
                                    "description": " Path and name of the debug image (required).",
                                    "type": ["string", "null"],
                                },
                                "uuid": {
                                    "description": " The unique UUID of the image.",
                                    "type": ["string", "null"],
                                    "format": "uuid",
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count119 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count119:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Legacy apple debug images (MachO).\n\n This was also used for non-apple platforms with similar debug setups.",
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["image_addr", "image_size", "name", "uuid"],
                        "properties": {
                            "arch": {
                                "description": " CPU architecture target.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cpu_subtype": {
                                "description": " MachO CPU subtype identifier.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "cpu_type": {
                                "description": " MachO CPU type identifier.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "image_addr": {
                                "description": " Starting memory address of the image (required).",
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "image_size": {
                                "description": " Size of the image in bytes (required).",
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "image_vmaddr": {
                                "description": " Loading address in virtual memory.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            "name": {
                                "description": " Path and name of the debug image (required).",
                                "type": ["string", "null"],
                            },
                            "uuid": {
                                "description": " The unique UUID of the image.",
                                "type": ["string", "null"],
                                "format": "uuid",
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_contexts(data, custom_formats={}, name_prefix=None):
    data_any_of_count122 = 0
    if not data_any_of_count122:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "additionalProperties": {
                            "anyOf": [
                                {"anyOf": [{"$ref": "#/definitions/Context"}]},
                                {"type": "null"},
                            ]
                        },
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                for data_key in data_keys:
                    if data_key not in []:
                        data_value = data.get(data_key)
                        data_value_any_of_count123 = 0
                        if not data_value_any_of_count123:
                            try:
                                validate___definitions_contextinner(
                                    data_value,
                                    custom_formats,
                                    (name_prefix or "data")
                                    + ".{data_key}".format(**locals()),
                                )
                                data_value_any_of_count123 += 1
                            except JsonSchemaValueException:
                                pass
                        if not data_value_any_of_count123:
                            try:
                                if not isinstance(data_value, (NoneType)):
                                    raise JsonSchemaValueException(
                                        ""
                                        + (name_prefix or "data")
                                        + ".{data_key}".format(**locals())
                                        + " must be null",
                                        value=data_value,
                                        name=""
                                        + (name_prefix or "data")
                                        + ".{data_key}".format(**locals())
                                        + "",
                                        definition={"type": "null"},
                                        rule="type",
                                    )
                                data_value_any_of_count123 += 1
                            except JsonSchemaValueException:
                                pass
                        if not data_value_any_of_count123:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".{data_key}".format(**locals())
                                + " cannot be validated by any definition",
                                value=data_value,
                                name=""
                                + (name_prefix or "data")
                                + ".{data_key}".format(**locals())
                                + "",
                                definition={
                                    "anyOf": [
                                        {"anyOf": [{"$ref": "#/definitions/Context"}]},
                                        {"type": "null"},
                                    ]
                                },
                                rule="anyOf",
                            )
            data_any_of_count122 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count122:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " The Contexts interface provides additional context data. Typically, this is data related to the\n current user and the environment. For example, the device or application version. Its canonical\n name is `contexts`.\n\n The `contexts` type can be used to define arbitrary contextual data on the event. It accepts an\n object of key/value pairs. The key is the “alias” of the context and can be freely chosen.\n However, as per policy, it should match the type of the context unless there are two values for\n a type. You can omit `type` if the key name is the type.\n\n Unknown data for the contexts is rendered as a key/value list.\n\n For more details about sending additional data with your event, see the [full documentation on\n Additional Data](https://docs.sentry.io/enriching-error-data/additional-data/).",
                "anyOf": [
                    {
                        "type": "object",
                        "additionalProperties": {
                            "anyOf": [
                                {"anyOf": [{"$ref": "#/definitions/Context"}]},
                                {"type": "null"},
                            ]
                        },
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_contextinner(data, custom_formats={}, name_prefix=None):
    data_any_of_count124 = 0
    if not data_any_of_count124:
        try:
            validate___definitions_context(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count124 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count124:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "anyOf": [
                    {
                        "description": " A context describes environment info (e.g. device, os or browser).",
                        "anyOf": [
                            {"$ref": "#/definitions/DeviceContext"},
                            {"$ref": "#/definitions/OsContext"},
                            {"$ref": "#/definitions/RuntimeContext"},
                            {"$ref": "#/definitions/AppContext"},
                            {"$ref": "#/definitions/BrowserContext"},
                            {"$ref": "#/definitions/GpuContext"},
                            {"$ref": "#/definitions/TraceContext"},
                            {"$ref": "#/definitions/ProfileContext"},
                            {"$ref": "#/definitions/ReplayContext"},
                            {"$ref": "#/definitions/UserReportV2Context"},
                            {"$ref": "#/definitions/MonitorContext"},
                            {"$ref": "#/definitions/ResponseContext"},
                            {"$ref": "#/definitions/OtelContext"},
                            {"$ref": "#/definitions/CloudResourceContext"},
                            {"$ref": "#/definitions/NelContext"},
                            {"$ref": "#/definitions/PerformanceScoreContext"},
                            {"type": "object", "additionalProperties": True},
                        ],
                    }
                ]
            },
            rule="anyOf",
        )
    return data


def validate___definitions_context(data, custom_formats={}, name_prefix=None):
    data_any_of_count125 = 0
    if not data_any_of_count125:
        try:
            validate___definitions_devicecontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_oscontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_runtimecontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_appcontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_browsercontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_gpucontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_tracecontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_profilecontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_replaycontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_userreportv2context(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_monitorcontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_responsecontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_otelcontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_cloudresourcecontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_nelcontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            validate___definitions_performancescorecontext(
                data, custom_formats, (name_prefix or "data") + ""
            )
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "object", "additionalProperties": True},
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
            data_any_of_count125 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count125:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " A context describes environment info (e.g. device, os or browser).",
                "anyOf": [
                    {
                        "description": " Device information.\n\n Device context describes the device that caused the event. This is most appropriate for mobile\n applications.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "arch": {
                                        "description": " Native cpu architecture of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "battery_level": {
                                        "description": " Current battery level in %.\n\n If the device has a battery, this can be a floating point value defining the battery level\n (in the range 0-100).",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "battery_status": {
                                        "description": " Status of the device's battery.\n\n For example, `Unknown`, `Charging`, `Discharging`, `NotCharging`, `Full`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "boot_time": {
                                        "description": " Indicator when the device was booted.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "brand": {
                                        "description": " Brand of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "charging": {
                                        "description": " Whether the device was charging or not.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "cpu_description": {
                                        "description": " CPU description.\n\n For example, Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "device_type": {
                                        "description": " Kind of device the application is running on.\n\n For example, `Unknown`, `Handheld`, `Console`, `Desktop`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "device_unique_identifier": {
                                        "description": " Unique device identifier.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "external_free_storage": {
                                        "description": " Free size of the attached external storage in bytes (eg: android SDK card).",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "external_storage_size": {
                                        "description": " Total size of the attached external storage in bytes (eg: android SDK card).",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "family": {
                                        "description": " Family of the device model.\n\n This is usually the common part of model names across generations. For instance, `iPhone`\n would be a reasonable family, so would be `Samsung Galaxy`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "free_memory": {
                                        "description": " How much memory is still available in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "free_storage": {
                                        "description": " How much storage is free in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "locale": {
                                        "description": " ISO 639-1 code of the locale the device is set to.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "low_memory": {
                                        "description": " Whether the device was low on memory.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "manufacturer": {
                                        "description": " Manufacturer of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "memory_size": {
                                        "description": " Total memory available in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "model": {
                                        "description": " Device model.\n\n This, for example, can be `Samsung Galaxy S3`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "model_id": {
                                        "description": " Device model (internal identifier).\n\n An internal hardware revision to identify the device exactly.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "name": {
                                        "description": " Name of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "online": {
                                        "description": " Whether the device was online or not.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "orientation": {
                                        "description": " Current screen orientation.\n\n This can be a string `portrait` or `landscape` to define the orientation of a device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "processor_count": {
                                        "description": ' Number of "logical processors".\n\n For example, 8.',
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "processor_frequency": {
                                        "description": " Processor frequency in MHz.\n\n Note that the actual CPU frequency might vary depending on current load and\n power conditions, especially on low-powered devices like phones and laptops.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "screen_density": {
                                        "description": " Device screen density.",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "screen_dpi": {
                                        "description": " Screen density as dots-per-inch.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "screen_height_pixels": {
                                        "description": " Height of the screen in pixels.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "screen_resolution": {
                                        "description": " Device screen resolution.\n\n (e.g.: 800x600, 3040x1444)",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "screen_width_pixels": {
                                        "description": " Width of the screen in pixels.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "simulator": {
                                        "description": " Simulator/prod indicator.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "storage_size": {
                                        "description": " Total storage size of the device in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "supports_accelerometer": {
                                        "description": " Whether the accelerometer is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_audio": {
                                        "description": " Whether audio is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_gyroscope": {
                                        "description": " Whether the gyroscope is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_location_service": {
                                        "description": " Whether location support is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_vibration": {
                                        "description": " Whether vibration is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "timezone": {
                                        "description": " Timezone of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "usable_memory": {
                                        "description": " How much memory is usable for the app in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "uuid": {
                                        "description": " UUID of the device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                        "format": "uuid",
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Operating system information.\n\n OS context describes the operating system on which the event was created. In web contexts, this\n is the operating system of the browser (generally pulled from the User-Agent string).",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "description": " Internal build number of the operating system.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "distribution": {
                                        "description": " Meta-data for the Linux Distribution.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/LinuxDistribution"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "kernel_version": {
                                        "description": " Current kernel version.\n\n This is typically the entire output of the `uname` syscall.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "name": {
                                        "description": " Name of the operating system.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "raw_description": {
                                        "description": " Unprocessed operating system info.\n\n An unprocessed description string obtained by the operating system. For some well-known\n runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are\n not explicitly given.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "rooted": {
                                        "description": " Indicator if the OS is rooted (mobile mostly).",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "version": {
                                        "description": " Version of the operating system.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Runtime information.\n\n Runtime context describes a runtime in more detail. Typically, this context is present in\n `contexts` multiple times if multiple runtimes are involved (for instance, if you have a\n JavaScript application running on top of JVM).",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "description": " Application build string, if it is separate from the version.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "name": {
                                        "description": " Runtime name.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "raw_description": {
                                        "description": " Unprocessed runtime info.\n\n An unprocessed description string obtained by the runtime. For some well-known runtimes,\n Sentry will attempt to parse `name` and `version` from this string, if they are not\n explicitly given.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version": {
                                        "description": " Runtime version string.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Application information.\n\n App context describes the application. As opposed to the runtime, this is the actual\n application that was running and carries metadata about the current session.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "app_build": {
                                        "description": " Internal build ID as it appears on the platform.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "app_identifier": {
                                        "description": " Version-independent application identifier, often a dotted bundle ID.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "app_memory": {
                                        "description": " Amount of memory used by the application in bytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "app_name": {
                                        "description": " Application name as it appears on the platform.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "app_start_time": {
                                        "description": " Start time of the app.\n\n Formatted UTC timestamp when the user started the application.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "app_version": {
                                        "description": " Application version as it appears on the platform.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "build_type": {
                                        "description": " String identifying the kind of build. For example, `testflight`.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "device_app_hash": {
                                        "description": " Application-specific device identifier.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "in_foreground": {
                                        "description": " A flag indicating whether the app is in foreground or not. An app is in foreground when it's visible to the user.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "view_names": {
                                        "description": " The names of the currently visible views.",
                                        "default": None,
                                        "type": ["array", "null"],
                                        "items": {"type": ["string", "null"]},
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Web browser information.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": " Display name of the browser application.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version": {
                                        "description": " Version string of the browser.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' GPU information.\n\n Example:\n\n ```json\n "gpu": {\n   "name": "AMD Radeon Pro 560",\n   "vendor_name": "Apple",\n   "memory_size": 4096,\n   "api_type": "Metal",\n   "multi_threaded_rendering": true,\n   "version": "Metal",\n   "npot_support": "Full"\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "api_type": {
                                        "description": ' The device low-level API type.\n\n Examples: `"Apple Metal"` or `"Direct3D11"`',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "graphics_shader_level": {
                                        "description": ' Approximate "shader capability" level of the graphics device.\n\n For Example: Shader Model 2.0, OpenGL ES 3.0, Metal / OpenGL ES 3.1, 27 (unknown)',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "id": {
                                        "description": " The PCI identifier of the graphics device.",
                                        "default": None,
                                    },
                                    "max_texture_size": {
                                        "description": " Largest size of a texture that is supported by the graphics hardware.\n\n For Example: 16384",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "memory_size": {
                                        "description": " The total GPU memory available in Megabytes.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "multi_threaded_rendering": {
                                        "description": " Whether the GPU has multi-threaded rendering or not.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "name": {
                                        "description": " The name of the graphics device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "npot_support": {
                                        "description": " The Non-Power-Of-Two support.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "supports_compute_shaders": {
                                        "description": " Whether compute shaders are available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_draw_call_instancing": {
                                        "description": " Whether GPU draw call instancing is supported.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_geometry_shaders": {
                                        "description": " Whether geometry shaders are available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "supports_ray_tracing": {
                                        "description": " Whether ray tracing is available on the device.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "vendor_id": {
                                        "description": " The PCI vendor identifier of the graphics device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "vendor_name": {
                                        "description": " The vendor name as reported by the graphics device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "version": {
                                        "description": " The Version of the graphics device.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Trace context",
                        "anyOf": [
                            {
                                "type": "object",
                                "required": ["span_id", "trace_id"],
                                "properties": {
                                    "client_sample_rate": {
                                        "description": " The client-side sample rate as reported in the envelope's `trace.sample_rate` header.\n\n The server takes this field from envelope headers and writes it back into the event. Clients\n should not ever send this value.",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "data": {
                                        "description": " Data of the trace's root span.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/SpanData"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "exclusive_time": {
                                        "description": " The amount of time in milliseconds spent in this transaction span,\n excluding its immediate child spans.",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "op": {
                                        "description": " Span type (see `OperationType` docs).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "origin": {
                                        "description": " The origin of the trace indicates what created the trace (see [OriginType] docs).",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "parent_span_id": {
                                        "description": " The ID of the span enclosing this span.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/SpanId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "sampled": {
                                        "description": " Track whether the trace connected to this event has been sampled entirely.\n\n This flag only applies to events with [`Error`] type that have an associated dynamic sampling context.",
                                        "default": None,
                                        "type": ["boolean", "null"],
                                    },
                                    "span_id": {
                                        "description": " The ID of the span.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/SpanId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "status": {
                                        "description": " Whether the trace failed or succeeded. Currently only used to indicate status of individual\n transactions.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/SpanStatus"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "trace_id": {
                                        "description": " The trace ID.",
                                        "anyOf": [
                                            {"$ref": "#/definitions/TraceId"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Profile context",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "profile_id": {
                                        "description": " The profile ID.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/EventId"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "profiler_id": {
                                        "description": " The profiler ID.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/EventId"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Replay context.\n\n The replay context contains the replay_id of the session replay if the event\n occurred during a replay. The replay_id is added onto the dynamic sampling context\n on the javascript SDK which propagates it through the trace. In relay, we take\n this value from the DSC and create a context which contains only the replay_id\n This context is never set on the client for events, only on relay.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "replay_id": {
                                        "description": " The replay ID.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/EventId"},
                                            {"type": "null"},
                                        ],
                                    }
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Feedback context.\n\n This contexts contains user feedback specific attributes.\n We don't PII scrub contact_email as that is provided by the user.\n TODO(jferg): rename to FeedbackContext once old UserReport logic is deprecated.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "contact_email": {
                                        "description": " an email optionally provided by the user, which can be different from user.email",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "message": {
                                        "description": " The feedback message which contains what the user has to say.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Monitor information.",
                        "anyOf": [{"type": "object", "additionalProperties": True}],
                    },
                    {
                        "description": " Response interface that contains information on a HTTP response related to the event.\n\n The data variable should only contain the response body. It can either be\n a dictionary (for standard HTTP responses) or a raw response body.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "body_size": {
                                        "description": " HTTP response body size.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "cookies": {
                                        "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Cookies"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "data": {
                                        "description": " Response data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                        "default": None,
                                    },
                                    "headers": {
                                        "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/Headers"},
                                            {"type": "null"},
                                        ],
                                    },
                                    "inferred_content_type": {
                                        "description": " The inferred content type of the response payload.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "status_code": {
                                        "description": " HTTP status code.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " OpenTelemetry Context\n\n If an event has this context, it was generated from an OpenTelemetry signal (trace, metric, log).",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "attributes": {
                                        "description": " Attributes of the OpenTelemetry span that maps to a Sentry event.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/trace/v1/trace.proto#L174-L186>",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                    "resource": {
                                        "description": " Information about an OpenTelemetry resource.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/resource/v1/resource.proto>",
                                        "default": None,
                                        "type": ["object", "null"],
                                        "additionalProperties": True,
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": ' Cloud Resource Context.\n\n This context describes the cloud resource the event originated from.\n\n Example:\n\n ```json\n "cloud_resource": {\n     "cloud.account.id": "499517922981",\n     "cloud.provider": "aws",\n     "cloud.platform": "aws_ec2",\n     "cloud.region": "us-east-1",\n     "cloud.vavailability_zone": "us-east-1e",\n     "host.id": "i-07d3301208fe0a55a",\n     "host.type": "t2.large"\n }\n ```',
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "cloud.account.id": {
                                        "description": " The cloud account ID the resource is assigned to.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cloud.availability_zone": {
                                        "description": " The zone where the resource is running.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cloud.platform": {
                                        "description": " The cloud platform in use.\n The prefix of the service SHOULD match the one specified in cloud_provider.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cloud.provider": {
                                        "description": " Name of the cloud provider.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "cloud.region": {
                                        "description": " The geographical region the resource is running.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "host.id": {
                                        "description": " Unique host ID.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "host.type": {
                                        "description": " Machine type of the host.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Contains NEL report information.\n\n Network Error Logging (NEL) is a browser feature that allows reporting of failed network\n requests from the client side. See the following resources for more information:\n\n - [W3C Editor's Draft](https://w3c.github.io/network-error-logging/)\n - [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Network_Error_Logging)",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "elapsed_time": {
                                        "description": " The number of milliseconds between the start of the resource fetch and when it was aborted by the user agent.",
                                        "default": None,
                                        "type": ["integer", "null"],
                                        "format": "uint64",
                                        "minimum": 0.0,
                                    },
                                    "error_type": {
                                        "description": ' If request failed, the type of its network error. If request succeeded, "ok".',
                                        "default": None,
                                        "type": ["string", "null"],
                                    },
                                    "phase": {
                                        "description": ' If request failed, the phase of its network error. If request succeeded, "application".',
                                        "default": None,
                                        "anyOf": [
                                            {
                                                "$ref": "#/definitions/NetworkReportPhases"
                                            },
                                            {"type": "null"},
                                        ],
                                    },
                                    "sampling_fraction": {
                                        "description": " The sampling rate.",
                                        "default": None,
                                        "type": ["number", "null"],
                                        "format": "double",
                                    },
                                    "server_ip": {
                                        "description": " Server IP where the requests was sent to.",
                                        "default": None,
                                        "anyOf": [
                                            {"$ref": "#/definitions/String"},
                                            {"type": "null"},
                                        ],
                                    },
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {
                        "description": " Performance Score context.\n\n The performance score context contains the version of the\n profile used to calculate the performance score.",
                        "anyOf": [
                            {
                                "type": "object",
                                "properties": {
                                    "score_profile_version": {
                                        "description": " The performance score profile version.",
                                        "default": None,
                                        "type": ["string", "null"],
                                    }
                                },
                                "additionalProperties": False,
                            }
                        ],
                    },
                    {"type": "object", "additionalProperties": True},
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_performancescorecontext(
    data, custom_formats={}, name_prefix=None
):
    data_any_of_count126 = 0
    if not data_any_of_count126:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "score_profile_version": {
                                "description": " The performance score profile version.",
                                "default": None,
                                "type": ["string", "null"],
                            }
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "score_profile_version" in data_keys:
                    data_keys.remove("score_profile_version")
                    data__scoreprofileversion = data["score_profile_version"]
                    if not isinstance(data__scoreprofileversion, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".score_profile_version must be string or null",
                            value=data__scoreprofileversion,
                            name=""
                            + (name_prefix or "data")
                            + ".score_profile_version",
                            definition={
                                "description": " The performance score profile version.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "score_profile_version": {
                                    "description": " The performance score profile version.",
                                    "default": None,
                                    "type": ["string", "null"],
                                }
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count126 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count126:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Performance Score context.\n\n The performance score context contains the version of the\n profile used to calculate the performance score.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "score_profile_version": {
                                "description": " The performance score profile version.",
                                "default": None,
                                "type": ["string", "null"],
                            }
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_nelcontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count127 = 0
    if not data_any_of_count127:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "elapsed_time": {
                                "description": " The number of milliseconds between the start of the resource fetch and when it was aborted by the user agent.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "error_type": {
                                "description": ' If request failed, the type of its network error. If request succeeded, "ok".',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "phase": {
                                "description": ' If request failed, the phase of its network error. If request succeeded, "application".',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Describes which phase the error occurred in.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "sampling_fraction": {
                                "description": " The sampling rate.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "server_ip": {
                                "description": " Server IP where the requests was sent to.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "elapsed_time" in data_keys:
                    data_keys.remove("elapsed_time")
                    data__elapsedtime = data["elapsed_time"]
                    if (
                        not isinstance(data__elapsedtime, (int, NoneType))
                        and not (
                            isinstance(data__elapsedtime, float)
                            and data__elapsedtime.is_integer()
                        )
                        or isinstance(data__elapsedtime, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".elapsed_time must be integer or null",
                            value=data__elapsedtime,
                            name="" + (name_prefix or "data") + ".elapsed_time",
                            definition={
                                "description": " The number of milliseconds between the start of the resource fetch and when it was aborted by the user agent.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__elapsedtime, (int, float, Decimal)):
                        if data__elapsedtime < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".elapsed_time must be bigger than or equal to 0.0",
                                value=data__elapsedtime,
                                name="" + (name_prefix or "data") + ".elapsed_time",
                                definition={
                                    "description": " The number of milliseconds between the start of the resource fetch and when it was aborted by the user agent.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "error_type" in data_keys:
                    data_keys.remove("error_type")
                    data__errortype = data["error_type"]
                    if not isinstance(data__errortype, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".error_type must be string or null",
                            value=data__errortype,
                            name="" + (name_prefix or "data") + ".error_type",
                            definition={
                                "description": ' If request failed, the type of its network error. If request succeeded, "ok".',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "phase" in data_keys:
                    data_keys.remove("phase")
                    data__phase = data["phase"]
                    data__phase_any_of_count128 = 0
                    if not data__phase_any_of_count128:
                        try:
                            validate___definitions_networkreportphases(
                                data__phase,
                                custom_formats,
                                (name_prefix or "data") + ".phase",
                            )
                            data__phase_any_of_count128 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__phase_any_of_count128:
                        try:
                            if not isinstance(data__phase, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".phase must be null",
                                    value=data__phase,
                                    name="" + (name_prefix or "data") + ".phase",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__phase_any_of_count128 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__phase_any_of_count128:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".phase cannot be validated by any definition",
                            value=data__phase,
                            name="" + (name_prefix or "data") + ".phase",
                            definition={
                                "description": ' If request failed, the phase of its network error. If request succeeded, "application".',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Describes which phase the error occurred in.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "sampling_fraction" in data_keys:
                    data_keys.remove("sampling_fraction")
                    data__samplingfraction = data["sampling_fraction"]
                    if not isinstance(
                        data__samplingfraction, (int, float, Decimal, NoneType)
                    ) or isinstance(data__samplingfraction, bool):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sampling_fraction must be number or null",
                            value=data__samplingfraction,
                            name="" + (name_prefix or "data") + ".sampling_fraction",
                            definition={
                                "description": " The sampling rate.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            rule="type",
                        )
                if "server_ip" in data_keys:
                    data_keys.remove("server_ip")
                    data__serverip = data["server_ip"]
                    data__serverip_any_of_count129 = 0
                    if not data__serverip_any_of_count129:
                        try:
                            validate___definitions_string(
                                data__serverip,
                                custom_formats,
                                (name_prefix or "data") + ".server_ip",
                            )
                            data__serverip_any_of_count129 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__serverip_any_of_count129:
                        try:
                            if not isinstance(data__serverip, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".server_ip must be null",
                                    value=data__serverip,
                                    name="" + (name_prefix or "data") + ".server_ip",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__serverip_any_of_count129 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__serverip_any_of_count129:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".server_ip cannot be validated by any definition",
                            value=data__serverip,
                            name="" + (name_prefix or "data") + ".server_ip",
                            definition={
                                "description": " Server IP where the requests was sent to.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "elapsed_time": {
                                    "description": " The number of milliseconds between the start of the resource fetch and when it was aborted by the user agent.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "error_type": {
                                    "description": ' If request failed, the type of its network error. If request succeeded, "ok".',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "phase": {
                                    "description": ' If request failed, the phase of its network error. If request succeeded, "application".',
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Describes which phase the error occurred in.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "additionalProperties": False,
                                                },
                                                {
                                                    "type": "object",
                                                    "additionalProperties": False,
                                                },
                                                {
                                                    "type": "object",
                                                    "additionalProperties": False,
                                                },
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "sampling_fraction": {
                                    "description": " The sampling rate.",
                                    "default": None,
                                    "type": ["number", "null"],
                                    "format": "double",
                                },
                                "server_ip": {
                                    "description": " Server IP where the requests was sent to.",
                                    "default": None,
                                    "anyOf": [{"type": "string"}, {"type": "null"}],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count127 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count127:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Contains NEL report information.\n\n Network Error Logging (NEL) is a browser feature that allows reporting of failed network\n requests from the client side. See the following resources for more information:\n\n - [W3C Editor's Draft](https://w3c.github.io/network-error-logging/)\n - [MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Network_Error_Logging)",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "elapsed_time": {
                                "description": " The number of milliseconds between the start of the resource fetch and when it was aborted by the user agent.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "error_type": {
                                "description": ' If request failed, the type of its network error. If request succeeded, "ok".',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "phase": {
                                "description": ' If request failed, the phase of its network error. If request succeeded, "application".',
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Describes which phase the error occurred in.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {
                                                "type": "object",
                                                "additionalProperties": False,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "sampling_fraction": {
                                "description": " The sampling rate.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "server_ip": {
                                "description": " Server IP where the requests was sent to.",
                                "default": None,
                                "anyOf": [{"type": "string"}, {"type": "null"}],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_networkreportphases(
    data, custom_formats={}, name_prefix=None
):
    data_any_of_count130 = 0
    if not data_any_of_count130:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "object", "additionalProperties": False},
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={"type": "object", "additionalProperties": False},
                        rule="additionalProperties",
                    )
            data_any_of_count130 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count130:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "object", "additionalProperties": False},
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={"type": "object", "additionalProperties": False},
                        rule="additionalProperties",
                    )
            data_any_of_count130 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count130:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "object", "additionalProperties": False},
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={"type": "object", "additionalProperties": False},
                        rule="additionalProperties",
                    )
            data_any_of_count130 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count130:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count130 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count130:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Describes which phase the error occurred in.",
                "anyOf": [
                    {"type": "object", "additionalProperties": False},
                    {"type": "object", "additionalProperties": False},
                    {"type": "object", "additionalProperties": False},
                    {"type": "string"},
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_cloudresourcecontext(
    data, custom_formats={}, name_prefix=None
):
    data_any_of_count131 = 0
    if not data_any_of_count131:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "cloud.account.id": {
                                "description": " The cloud account ID the resource is assigned to.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cloud.availability_zone": {
                                "description": " The zone where the resource is running.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cloud.platform": {
                                "description": " The cloud platform in use.\n The prefix of the service SHOULD match the one specified in cloud_provider.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cloud.provider": {
                                "description": " Name of the cloud provider.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cloud.region": {
                                "description": " The geographical region the resource is running.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "host.id": {
                                "description": " Unique host ID.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "host.type": {
                                "description": " Machine type of the host.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "cloud.account.id" in data_keys:
                    data_keys.remove("cloud.account.id")
                    data__cloudaccountid = data["cloud.account.id"]
                    if not isinstance(data__cloudaccountid, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cloud.account.id must be string or null",
                            value=data__cloudaccountid,
                            name="" + (name_prefix or "data") + ".cloud.account.id",
                            definition={
                                "description": " The cloud account ID the resource is assigned to.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "cloud.availability_zone" in data_keys:
                    data_keys.remove("cloud.availability_zone")
                    data__cloudavailabilityzone = data["cloud.availability_zone"]
                    if not isinstance(data__cloudavailabilityzone, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cloud.availability_zone must be string or null",
                            value=data__cloudavailabilityzone,
                            name=""
                            + (name_prefix or "data")
                            + ".cloud.availability_zone",
                            definition={
                                "description": " The zone where the resource is running.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "cloud.platform" in data_keys:
                    data_keys.remove("cloud.platform")
                    data__cloudplatform = data["cloud.platform"]
                    if not isinstance(data__cloudplatform, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cloud.platform must be string or null",
                            value=data__cloudplatform,
                            name="" + (name_prefix or "data") + ".cloud.platform",
                            definition={
                                "description": " The cloud platform in use.\n The prefix of the service SHOULD match the one specified in cloud_provider.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "cloud.provider" in data_keys:
                    data_keys.remove("cloud.provider")
                    data__cloudprovider = data["cloud.provider"]
                    if not isinstance(data__cloudprovider, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cloud.provider must be string or null",
                            value=data__cloudprovider,
                            name="" + (name_prefix or "data") + ".cloud.provider",
                            definition={
                                "description": " Name of the cloud provider.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "cloud.region" in data_keys:
                    data_keys.remove("cloud.region")
                    data__cloudregion = data["cloud.region"]
                    if not isinstance(data__cloudregion, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cloud.region must be string or null",
                            value=data__cloudregion,
                            name="" + (name_prefix or "data") + ".cloud.region",
                            definition={
                                "description": " The geographical region the resource is running.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "host.id" in data_keys:
                    data_keys.remove("host.id")
                    data__hostid = data["host.id"]
                    if not isinstance(data__hostid, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".host.id must be string or null",
                            value=data__hostid,
                            name="" + (name_prefix or "data") + ".host.id",
                            definition={
                                "description": " Unique host ID.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "host.type" in data_keys:
                    data_keys.remove("host.type")
                    data__hosttype = data["host.type"]
                    if not isinstance(data__hosttype, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".host.type must be string or null",
                            value=data__hosttype,
                            name="" + (name_prefix or "data") + ".host.type",
                            definition={
                                "description": " Machine type of the host.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "cloud.account.id": {
                                    "description": " The cloud account ID the resource is assigned to.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "cloud.availability_zone": {
                                    "description": " The zone where the resource is running.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "cloud.platform": {
                                    "description": " The cloud platform in use.\n The prefix of the service SHOULD match the one specified in cloud_provider.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "cloud.provider": {
                                    "description": " Name of the cloud provider.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "cloud.region": {
                                    "description": " The geographical region the resource is running.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "host.id": {
                                    "description": " Unique host ID.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "host.type": {
                                    "description": " Machine type of the host.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count131 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count131:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' Cloud Resource Context.\n\n This context describes the cloud resource the event originated from.\n\n Example:\n\n ```json\n "cloud_resource": {\n     "cloud.account.id": "499517922981",\n     "cloud.provider": "aws",\n     "cloud.platform": "aws_ec2",\n     "cloud.region": "us-east-1",\n     "cloud.vavailability_zone": "us-east-1e",\n     "host.id": "i-07d3301208fe0a55a",\n     "host.type": "t2.large"\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "cloud.account.id": {
                                "description": " The cloud account ID the resource is assigned to.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cloud.availability_zone": {
                                "description": " The zone where the resource is running.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cloud.platform": {
                                "description": " The cloud platform in use.\n The prefix of the service SHOULD match the one specified in cloud_provider.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cloud.provider": {
                                "description": " Name of the cloud provider.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cloud.region": {
                                "description": " The geographical region the resource is running.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "host.id": {
                                "description": " Unique host ID.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "host.type": {
                                "description": " Machine type of the host.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_otelcontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count132 = 0
    if not data_any_of_count132:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "attributes": {
                                "description": " Attributes of the OpenTelemetry span that maps to a Sentry event.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/trace/v1/trace.proto#L174-L186>",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "resource": {
                                "description": " Information about an OpenTelemetry resource.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/resource/v1/resource.proto>",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "attributes" in data_keys:
                    data_keys.remove("attributes")
                    data__attributes = data["attributes"]
                    if not isinstance(data__attributes, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".attributes must be object or null",
                            value=data__attributes,
                            name="" + (name_prefix or "data") + ".attributes",
                            definition={
                                "description": " Attributes of the OpenTelemetry span that maps to a Sentry event.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/trace/v1/trace.proto#L174-L186>",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            rule="type",
                        )
                    data__attributes_is_dict = isinstance(data__attributes, dict)
                    if data__attributes_is_dict:
                        data__attributes_keys = set(data__attributes.keys())
                if "resource" in data_keys:
                    data_keys.remove("resource")
                    data__resource = data["resource"]
                    if not isinstance(data__resource, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".resource must be object or null",
                            value=data__resource,
                            name="" + (name_prefix or "data") + ".resource",
                            definition={
                                "description": " Information about an OpenTelemetry resource.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/resource/v1/resource.proto>",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            rule="type",
                        )
                    data__resource_is_dict = isinstance(data__resource, dict)
                    if data__resource_is_dict:
                        data__resource_keys = set(data__resource.keys())
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "attributes": {
                                    "description": " Attributes of the OpenTelemetry span that maps to a Sentry event.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/trace/v1/trace.proto#L174-L186>",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                                "resource": {
                                    "description": " Information about an OpenTelemetry resource.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/resource/v1/resource.proto>",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count132 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count132:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " OpenTelemetry Context\n\n If an event has this context, it was generated from an OpenTelemetry signal (trace, metric, log).",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "attributes": {
                                "description": " Attributes of the OpenTelemetry span that maps to a Sentry event.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/trace/v1/trace.proto#L174-L186>",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "resource": {
                                "description": " Information about an OpenTelemetry resource.\n\n <https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/resource/v1/resource.proto>",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_responsecontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count133 = 0
    if not data_any_of_count133:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "body_size": {
                                "description": " HTTP response body size.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "cookies": {
                                "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding cookies.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "data": {
                                "description": " Response data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                "default": None,
                            },
                            "headers": {
                                "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding headers.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/HeaderValue"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderName"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderValue"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "inferred_content_type": {
                                "description": " The inferred content type of the response payload.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "status_code": {
                                "description": " HTTP status code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "body_size" in data_keys:
                    data_keys.remove("body_size")
                    data__bodysize = data["body_size"]
                    if (
                        not isinstance(data__bodysize, (int, NoneType))
                        and not (
                            isinstance(data__bodysize, float)
                            and data__bodysize.is_integer()
                        )
                        or isinstance(data__bodysize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".body_size must be integer or null",
                            value=data__bodysize,
                            name="" + (name_prefix or "data") + ".body_size",
                            definition={
                                "description": " HTTP response body size.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__bodysize, (int, float, Decimal)):
                        if data__bodysize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".body_size must be bigger than or equal to 0.0",
                                value=data__bodysize,
                                name="" + (name_prefix or "data") + ".body_size",
                                definition={
                                    "description": " HTTP response body size.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "cookies" in data_keys:
                    data_keys.remove("cookies")
                    data__cookies = data["cookies"]
                    data__cookies_any_of_count134 = 0
                    if not data__cookies_any_of_count134:
                        try:
                            validate___definitions_cookies(
                                data__cookies,
                                custom_formats,
                                (name_prefix or "data") + ".cookies",
                            )
                            data__cookies_any_of_count134 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__cookies_any_of_count134:
                        try:
                            if not isinstance(data__cookies, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".cookies must be null",
                                    value=data__cookies,
                                    name="" + (name_prefix or "data") + ".cookies",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__cookies_any_of_count134 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__cookies_any_of_count134:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cookies cannot be validated by any definition",
                            value=data__cookies,
                            name="" + (name_prefix or "data") + ".cookies",
                            definition={
                                "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding cookies.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "data" in data_keys:
                    data_keys.remove("data")
                    data__data = data["data"]
                if "headers" in data_keys:
                    data_keys.remove("headers")
                    data__headers = data["headers"]
                    data__headers_any_of_count135 = 0
                    if not data__headers_any_of_count135:
                        try:
                            validate___definitions_headers(
                                data__headers,
                                custom_formats,
                                (name_prefix or "data") + ".headers",
                            )
                            data__headers_any_of_count135 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__headers_any_of_count135:
                        try:
                            if not isinstance(data__headers, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".headers must be null",
                                    value=data__headers,
                                    name="" + (name_prefix or "data") + ".headers",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__headers_any_of_count135 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__headers_any_of_count135:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".headers cannot be validated by any definition",
                            value=data__headers,
                            name="" + (name_prefix or "data") + ".headers",
                            definition={
                                "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding headers.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/HeaderValue"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderName"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderValue"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "inferred_content_type" in data_keys:
                    data_keys.remove("inferred_content_type")
                    data__inferredcontenttype = data["inferred_content_type"]
                    if not isinstance(data__inferredcontenttype, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".inferred_content_type must be string or null",
                            value=data__inferredcontenttype,
                            name=""
                            + (name_prefix or "data")
                            + ".inferred_content_type",
                            definition={
                                "description": " The inferred content type of the response payload.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "status_code" in data_keys:
                    data_keys.remove("status_code")
                    data__statuscode = data["status_code"]
                    if (
                        not isinstance(data__statuscode, (int, NoneType))
                        and not (
                            isinstance(data__statuscode, float)
                            and data__statuscode.is_integer()
                        )
                        or isinstance(data__statuscode, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".status_code must be integer or null",
                            value=data__statuscode,
                            name="" + (name_prefix or "data") + ".status_code",
                            definition={
                                "description": " HTTP status code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__statuscode, (int, float, Decimal)):
                        if data__statuscode < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".status_code must be bigger than or equal to 0.0",
                                value=data__statuscode,
                                name="" + (name_prefix or "data") + ".status_code",
                                definition={
                                    "description": " HTTP status code.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "body_size": {
                                    "description": " HTTP response body size.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "cookies": {
                                    "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A map holding cookies.",
                                            "anyOf": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "additionalProperties": {
                                                                "type": [
                                                                    "string",
                                                                    "null",
                                                                ]
                                                            },
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": [
                                                                    {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                    {
                                                                        "type": [
                                                                            "string",
                                                                            "null",
                                                                        ]
                                                                    },
                                                                ],
                                                                "maxItems": 2,
                                                                "minItems": 2,
                                                            },
                                                        },
                                                    ]
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "data": {
                                    "description": " Response data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                    "default": None,
                                },
                                "headers": {
                                    "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A map holding headers.",
                                            "anyOf": [
                                                {
                                                    "anyOf": [
                                                        {
                                                            "type": "object",
                                                            "additionalProperties": {
                                                                "anyOf": [
                                                                    {
                                                                        "$ref": "#/definitions/HeaderValue"
                                                                    },
                                                                    {"type": "null"},
                                                                ]
                                                            },
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": [
                                                                    "array",
                                                                    "null",
                                                                ],
                                                                "items": [
                                                                    {
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/HeaderName"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ]
                                                                    },
                                                                    {
                                                                        "anyOf": [
                                                                            {
                                                                                "$ref": "#/definitions/HeaderValue"
                                                                            },
                                                                            {
                                                                                "type": "null"
                                                                            },
                                                                        ]
                                                                    },
                                                                ],
                                                                "maxItems": 2,
                                                                "minItems": 2,
                                                            },
                                                        },
                                                    ]
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "inferred_content_type": {
                                    "description": " The inferred content type of the response payload.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "status_code": {
                                    "description": " HTTP status code.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count133 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count133:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Response interface that contains information on a HTTP response related to the event.\n\n The data variable should only contain the response body. It can either be\n a dictionary (for standard HTTP responses) or a raw response body.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "body_size": {
                                "description": " HTTP response body size.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "cookies": {
                                "description": " The cookie values.\n\n Can be given unparsed as string, as dictionary, or as a list of tuples.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding cookies.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "type": ["string", "null"]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                                {
                                                                    "type": [
                                                                        "string",
                                                                        "null",
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "data": {
                                "description": " Response data in any format that makes sense.\n\n SDKs should discard large and binary bodies by default. Can be given as a string or\n structural data of any format.",
                                "default": None,
                            },
                            "headers": {
                                "description": " A dictionary of submitted headers.\n\n If a header appears multiple times it, needs to be merged according to the HTTP standard\n for header merging. Header names are treated case-insensitively by Sentry.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A map holding headers.",
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "type": "object",
                                                        "additionalProperties": {
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/HeaderValue"
                                                                },
                                                                {"type": "null"},
                                                            ]
                                                        },
                                                    },
                                                    {
                                                        "type": "array",
                                                        "items": {
                                                            "type": ["array", "null"],
                                                            "items": [
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderName"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                                {
                                                                    "anyOf": [
                                                                        {
                                                                            "$ref": "#/definitions/HeaderValue"
                                                                        },
                                                                        {
                                                                            "type": "null"
                                                                        },
                                                                    ]
                                                                },
                                                            ],
                                                            "maxItems": 2,
                                                            "minItems": 2,
                                                        },
                                                    },
                                                ]
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "inferred_content_type": {
                                "description": " The inferred content type of the response payload.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "status_code": {
                                "description": " HTTP status code.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_monitorcontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count136 = 0
    if not data_any_of_count136:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "object", "additionalProperties": True},
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
            data_any_of_count136 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count136:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Monitor information.",
                "anyOf": [{"type": "object", "additionalProperties": True}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_userreportv2context(
    data, custom_formats={}, name_prefix=None
):
    data_any_of_count137 = 0
    if not data_any_of_count137:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "contact_email": {
                                "description": " an email optionally provided by the user, which can be different from user.email",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "message": {
                                "description": " The feedback message which contains what the user has to say.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "contact_email" in data_keys:
                    data_keys.remove("contact_email")
                    data__contactemail = data["contact_email"]
                    if not isinstance(data__contactemail, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".contact_email must be string or null",
                            value=data__contactemail,
                            name="" + (name_prefix or "data") + ".contact_email",
                            definition={
                                "description": " an email optionally provided by the user, which can be different from user.email",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "message" in data_keys:
                    data_keys.remove("message")
                    data__message = data["message"]
                    if not isinstance(data__message, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".message must be string or null",
                            value=data__message,
                            name="" + (name_prefix or "data") + ".message",
                            definition={
                                "description": " The feedback message which contains what the user has to say.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "contact_email": {
                                    "description": " an email optionally provided by the user, which can be different from user.email",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "message": {
                                    "description": " The feedback message which contains what the user has to say.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count137 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count137:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Feedback context.\n\n This contexts contains user feedback specific attributes.\n We don't PII scrub contact_email as that is provided by the user.\n TODO(jferg): rename to FeedbackContext once old UserReport logic is deprecated.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "contact_email": {
                                "description": " an email optionally provided by the user, which can be different from user.email",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "message": {
                                "description": " The feedback message which contains what the user has to say.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_replaycontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count138 = 0
    if not data_any_of_count138:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "replay_id": {
                                "description": " The replay ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            }
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "replay_id" in data_keys:
                    data_keys.remove("replay_id")
                    data__replayid = data["replay_id"]
                    data__replayid_any_of_count139 = 0
                    if not data__replayid_any_of_count139:
                        try:
                            validate___definitions_eventid(
                                data__replayid,
                                custom_formats,
                                (name_prefix or "data") + ".replay_id",
                            )
                            data__replayid_any_of_count139 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__replayid_any_of_count139:
                        try:
                            if not isinstance(data__replayid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".replay_id must be null",
                                    value=data__replayid,
                                    name="" + (name_prefix or "data") + ".replay_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__replayid_any_of_count139 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__replayid_any_of_count139:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".replay_id cannot be validated by any definition",
                            value=data__replayid,
                            name="" + (name_prefix or "data") + ".replay_id",
                            definition={
                                "description": " The replay ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "replay_id": {
                                    "description": " The replay ID.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Wrapper around a UUID with slightly different formatting.",
                                            "anyOf": [
                                                {"type": "string", "format": "uuid"}
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                }
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count138 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count138:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Replay context.\n\n The replay context contains the replay_id of the session replay if the event\n occurred during a replay. The replay_id is added onto the dynamic sampling context\n on the javascript SDK which propagates it through the trace. In relay, we take\n this value from the DSC and create a context which contains only the replay_id\n This context is never set on the client for events, only on relay.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "replay_id": {
                                "description": " The replay ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            }
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_profilecontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count140 = 0
    if not data_any_of_count140:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "profile_id": {
                                "description": " The profile ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "profiler_id": {
                                "description": " The profiler ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "profile_id" in data_keys:
                    data_keys.remove("profile_id")
                    data__profileid = data["profile_id"]
                    data__profileid_any_of_count141 = 0
                    if not data__profileid_any_of_count141:
                        try:
                            validate___definitions_eventid(
                                data__profileid,
                                custom_formats,
                                (name_prefix or "data") + ".profile_id",
                            )
                            data__profileid_any_of_count141 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__profileid_any_of_count141:
                        try:
                            if not isinstance(data__profileid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".profile_id must be null",
                                    value=data__profileid,
                                    name="" + (name_prefix or "data") + ".profile_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__profileid_any_of_count141 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__profileid_any_of_count141:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".profile_id cannot be validated by any definition",
                            value=data__profileid,
                            name="" + (name_prefix or "data") + ".profile_id",
                            definition={
                                "description": " The profile ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "profiler_id" in data_keys:
                    data_keys.remove("profiler_id")
                    data__profilerid = data["profiler_id"]
                    data__profilerid_any_of_count142 = 0
                    if not data__profilerid_any_of_count142:
                        try:
                            validate___definitions_eventid(
                                data__profilerid,
                                custom_formats,
                                (name_prefix or "data") + ".profiler_id",
                            )
                            data__profilerid_any_of_count142 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__profilerid_any_of_count142:
                        try:
                            if not isinstance(data__profilerid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".profiler_id must be null",
                                    value=data__profilerid,
                                    name="" + (name_prefix or "data") + ".profiler_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__profilerid_any_of_count142 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__profilerid_any_of_count142:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".profiler_id cannot be validated by any definition",
                            value=data__profilerid,
                            name="" + (name_prefix or "data") + ".profiler_id",
                            definition={
                                "description": " The profiler ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "profile_id": {
                                    "description": " The profile ID.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Wrapper around a UUID with slightly different formatting.",
                                            "anyOf": [
                                                {"type": "string", "format": "uuid"}
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "profiler_id": {
                                    "description": " The profiler ID.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Wrapper around a UUID with slightly different formatting.",
                                            "anyOf": [
                                                {"type": "string", "format": "uuid"}
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count140 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count140:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Profile context",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "profile_id": {
                                "description": " The profile ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "profiler_id": {
                                "description": " The profiler ID.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_tracecontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count143 = 0
    if not data_any_of_count143:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "required": ["span_id", "trace_id"],
                        "properties": {
                            "client_sample_rate": {
                                "description": " The client-side sample rate as reported in the envelope's `trace.sample_rate` header.\n\n The server takes this field from envelope headers and writes it back into the event. Clients\n should not ever send this value.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "data": {
                                "description": " Data of the trace's root span.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Arbitrary additional data on a span.\n\n Besides arbitrary user data, this type also contains SDK-provided fields used by the\n product (see <https://develop.sentry.dev/sdk/performance/span-data-conventions/>).",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "ai.completion_tokens.used": {
                                                        "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                                        "default": None,
                                                    },
                                                    "ai.input_messages": {
                                                        "description": " The input messages to an AI model call",
                                                        "default": None,
                                                    },
                                                    "ai.model_id": {
                                                        "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                                        "default": None,
                                                    },
                                                    "ai.pipeline.name": {
                                                        "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                                        "default": None,
                                                    },
                                                    "ai.prompt_tokens.used": {
                                                        "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                                        "default": None,
                                                    },
                                                    "ai.responses": {
                                                        "description": " The responses to an AI model call",
                                                        "default": None,
                                                    },
                                                    "ai.total_tokens.used": {
                                                        "description": " The total tokens that were used by an LLM call",
                                                        "default": None,
                                                    },
                                                    "app_start_type": {
                                                        "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                                        "default": None,
                                                    },
                                                    "browser.name": {
                                                        "description": " The client's browser name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "cache.hit": {
                                                        "description": " Whether cache was hit or miss on a read operation.",
                                                        "default": None,
                                                    },
                                                    "cache.item_size": {
                                                        "description": " The size of the cache item.",
                                                        "default": None,
                                                    },
                                                    "cache.key": {
                                                        "description": " The name of the cache key.",
                                                        "default": None,
                                                    },
                                                    "client.address": {
                                                        "description": " The client's IP address.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "code.filepath": {
                                                        "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                                        "default": None,
                                                    },
                                                    "code.function": {
                                                        "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                                        "default": None,
                                                    },
                                                    "code.lineno": {
                                                        "description": " The line number in `code.filepath` best representing the operation.",
                                                        "default": None,
                                                    },
                                                    "code.namespace": {
                                                        "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                                        "default": None,
                                                    },
                                                    "db.operation": {
                                                        "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                                        "default": None,
                                                    },
                                                    "db.system": {
                                                        "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                                        "default": None,
                                                    },
                                                    "frames.delay": {"default": None},
                                                    "http.decoded_response_content_length": {
                                                        "description": " The decoded body size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "http.request_method": {
                                                        "description": " The HTTP method used.",
                                                        "default": None,
                                                    },
                                                    "http.response.status_code": {
                                                        "description": " The status HTTP response.",
                                                        "default": None,
                                                    },
                                                    "http.response_content_length": {
                                                        "description": " The encoded body size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "http.response_transfer_size": {
                                                        "description": " The transfer size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "messaging.destination.name": {
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "messaging.message.body.size": {
                                                        "description": " Message Body Size",
                                                        "default": None,
                                                    },
                                                    "messaging.message.id": {
                                                        "description": " Message ID",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "messaging.message.receive.latency": {
                                                        "description": " Message Receive Latency",
                                                        "default": None,
                                                    },
                                                    "messaging.message.retry.count": {
                                                        "description": " Message Retry Count",
                                                        "default": None,
                                                    },
                                                    "previousRoute": {
                                                        "description": " The previous route in the application\n\n Set by React Native SDK.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Route"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "resource.render_blocking_status": {
                                                        "description": " The render blocking status of the resource.",
                                                        "default": None,
                                                    },
                                                    "route": {
                                                        "description": " The current route in the application.\n\n Set by React Native SDK.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Route"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "sentry.environment": {
                                                        "description": " The sentry environment.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.frames.frozen": {
                                                        "description": " Frozen Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.frames.slow": {
                                                        "description": " Slow Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.frames.total": {
                                                        "description": " Total Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.release": {
                                                        "description": " The release version of the project.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.replay.id": {
                                                        "description": " Replay ID",
                                                        "default": None,
                                                    },
                                                    "sentry.sdk.name": {
                                                        "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.sdk.version": {
                                                        "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.segment.name": {
                                                        "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "server.address": {
                                                        "description": " Name of the web server host.",
                                                        "default": None,
                                                    },
                                                    "thread.id": {
                                                        "description": " ID of thread from where the span originated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/ThreadId"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "thread.name": {
                                                        "description": " Label identifying a thread from where the span originated.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "ui.component_name": {
                                                        "description": " Name of the UI component (e.g. React).",
                                                        "default": None,
                                                    },
                                                    "url.full": {
                                                        "description": " Absolute URL of a network resource.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "url.scheme": {
                                                        "description": ' The URL scheme, e.g. `"https"`.',
                                                        "default": None,
                                                    },
                                                    "user": {
                                                        "description": " User Display",
                                                        "default": None,
                                                    },
                                                    "user_agent.original": {
                                                        "description": " Value of the HTTP User-Agent header sent by the client.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "exclusive_time": {
                                "description": " The amount of time in milliseconds spent in this transaction span,\n excluding its immediate child spans.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "op": {
                                "description": " Span type (see `OperationType` docs).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "origin": {
                                "description": " The origin of the trace indicates what created the trace (see [OriginType] docs).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "parent_span_id": {
                                "description": " The ID of the span enclosing this span.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A 16-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "sampled": {
                                "description": " Track whether the trace connected to this event has been sampled entirely.\n\n This flag only applies to events with [`Error`] type that have an associated dynamic sampling context.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "span_id": {
                                "description": " The ID of the span.",
                                "anyOf": [
                                    {
                                        "description": " A 16-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "status": {
                                "description": " Whether the trace failed or succeeded. Currently only used to indicate status of individual\n transactions.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                                        "type": "string",
                                        "enum": [
                                            "ok",
                                            "cancelled",
                                            "unknown",
                                            "invalid_argument",
                                            "deadline_exceeded",
                                            "not_found",
                                            "already_exists",
                                            "permission_denied",
                                            "resource_exhausted",
                                            "failed_precondition",
                                            "aborted",
                                            "out_of_range",
                                            "unimplemented",
                                            "internal_error",
                                            "unavailable",
                                            "data_loss",
                                            "unauthenticated",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "trace_id": {
                                "description": " The trace ID.",
                                "anyOf": [
                                    {
                                        "description": " A 32-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data__missing_keys = set(["span_id", "trace_id"]) - data.keys()
                if data__missing_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must contain "
                        + (str(sorted(data__missing_keys)) + " properties"),
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["span_id", "trace_id"],
                            "properties": {
                                "client_sample_rate": {
                                    "description": " The client-side sample rate as reported in the envelope's `trace.sample_rate` header.\n\n The server takes this field from envelope headers and writes it back into the event. Clients\n should not ever send this value.",
                                    "default": None,
                                    "type": ["number", "null"],
                                    "format": "double",
                                },
                                "data": {
                                    "description": " Data of the trace's root span.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Arbitrary additional data on a span.\n\n Besides arbitrary user data, this type also contains SDK-provided fields used by the\n product (see <https://develop.sentry.dev/sdk/performance/span-data-conventions/>).",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "ai.completion_tokens.used": {
                                                            "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                                            "default": None,
                                                        },
                                                        "ai.input_messages": {
                                                            "description": " The input messages to an AI model call",
                                                            "default": None,
                                                        },
                                                        "ai.model_id": {
                                                            "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                                            "default": None,
                                                        },
                                                        "ai.pipeline.name": {
                                                            "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                                            "default": None,
                                                        },
                                                        "ai.prompt_tokens.used": {
                                                            "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                                            "default": None,
                                                        },
                                                        "ai.responses": {
                                                            "description": " The responses to an AI model call",
                                                            "default": None,
                                                        },
                                                        "ai.total_tokens.used": {
                                                            "description": " The total tokens that were used by an LLM call",
                                                            "default": None,
                                                        },
                                                        "app_start_type": {
                                                            "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                                            "default": None,
                                                        },
                                                        "browser.name": {
                                                            "description": " The client's browser name.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "cache.hit": {
                                                            "description": " Whether cache was hit or miss on a read operation.",
                                                            "default": None,
                                                        },
                                                        "cache.item_size": {
                                                            "description": " The size of the cache item.",
                                                            "default": None,
                                                        },
                                                        "cache.key": {
                                                            "description": " The name of the cache key.",
                                                            "default": None,
                                                        },
                                                        "client.address": {
                                                            "description": " The client's IP address.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "code.filepath": {
                                                            "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                                            "default": None,
                                                        },
                                                        "code.function": {
                                                            "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                                            "default": None,
                                                        },
                                                        "code.lineno": {
                                                            "description": " The line number in `code.filepath` best representing the operation.",
                                                            "default": None,
                                                        },
                                                        "code.namespace": {
                                                            "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                                            "default": None,
                                                        },
                                                        "db.operation": {
                                                            "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                                            "default": None,
                                                        },
                                                        "db.system": {
                                                            "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                                            "default": None,
                                                        },
                                                        "frames.delay": {
                                                            "default": None
                                                        },
                                                        "http.decoded_response_content_length": {
                                                            "description": " The decoded body size of the response (in bytes).",
                                                            "default": None,
                                                        },
                                                        "http.request_method": {
                                                            "description": " The HTTP method used.",
                                                            "default": None,
                                                        },
                                                        "http.response.status_code": {
                                                            "description": " The status HTTP response.",
                                                            "default": None,
                                                        },
                                                        "http.response_content_length": {
                                                            "description": " The encoded body size of the response (in bytes).",
                                                            "default": None,
                                                        },
                                                        "http.response_transfer_size": {
                                                            "description": " The transfer size of the response (in bytes).",
                                                            "default": None,
                                                        },
                                                        "messaging.destination.name": {
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "messaging.message.body.size": {
                                                            "description": " Message Body Size",
                                                            "default": None,
                                                        },
                                                        "messaging.message.id": {
                                                            "description": " Message ID",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "messaging.message.receive.latency": {
                                                            "description": " Message Receive Latency",
                                                            "default": None,
                                                        },
                                                        "messaging.message.retry.count": {
                                                            "description": " Message Retry Count",
                                                            "default": None,
                                                        },
                                                        "previousRoute": {
                                                            "description": " The previous route in the application\n\n Set by React Native SDK.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Route"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "resource.render_blocking_status": {
                                                            "description": " The render blocking status of the resource.",
                                                            "default": None,
                                                        },
                                                        "route": {
                                                            "description": " The current route in the application.\n\n Set by React Native SDK.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Route"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "sentry.environment": {
                                                            "description": " The sentry environment.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry.frames.frozen": {
                                                            "description": " Frozen Frames",
                                                            "default": None,
                                                        },
                                                        "sentry.frames.slow": {
                                                            "description": " Slow Frames",
                                                            "default": None,
                                                        },
                                                        "sentry.frames.total": {
                                                            "description": " Total Frames",
                                                            "default": None,
                                                        },
                                                        "sentry.release": {
                                                            "description": " The release version of the project.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry.replay.id": {
                                                            "description": " Replay ID",
                                                            "default": None,
                                                        },
                                                        "sentry.sdk.name": {
                                                            "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry.sdk.version": {
                                                            "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry.segment.name": {
                                                            "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "server.address": {
                                                            "description": " Name of the web server host.",
                                                            "default": None,
                                                        },
                                                        "thread.id": {
                                                            "description": " ID of thread from where the span originated.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ThreadId"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "thread.name": {
                                                            "description": " Label identifying a thread from where the span originated.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "ui.component_name": {
                                                            "description": " Name of the UI component (e.g. React).",
                                                            "default": None,
                                                        },
                                                        "url.full": {
                                                            "description": " Absolute URL of a network resource.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "url.scheme": {
                                                            "description": ' The URL scheme, e.g. `"https"`.',
                                                            "default": None,
                                                        },
                                                        "user": {
                                                            "description": " User Display",
                                                            "default": None,
                                                        },
                                                        "user_agent.original": {
                                                            "description": " Value of the HTTP User-Agent header sent by the client.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "exclusive_time": {
                                    "description": " The amount of time in milliseconds spent in this transaction span,\n excluding its immediate child spans.",
                                    "default": None,
                                    "type": ["number", "null"],
                                    "format": "double",
                                },
                                "op": {
                                    "description": " Span type (see `OperationType` docs).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "origin": {
                                    "description": " The origin of the trace indicates what created the trace (see [OriginType] docs).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "parent_span_id": {
                                    "description": " The ID of the span enclosing this span.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A 16-character hex string as described in the W3C trace context spec.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "sampled": {
                                    "description": " Track whether the trace connected to this event has been sampled entirely.\n\n This flag only applies to events with [`Error`] type that have an associated dynamic sampling context.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "span_id": {
                                    "description": " The ID of the span.",
                                    "anyOf": [
                                        {
                                            "description": " A 16-character hex string as described in the W3C trace context spec.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "status": {
                                    "description": " Whether the trace failed or succeeded. Currently only used to indicate status of individual\n transactions.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                                            "type": "string",
                                            "enum": [
                                                "ok",
                                                "cancelled",
                                                "unknown",
                                                "invalid_argument",
                                                "deadline_exceeded",
                                                "not_found",
                                                "already_exists",
                                                "permission_denied",
                                                "resource_exhausted",
                                                "failed_precondition",
                                                "aborted",
                                                "out_of_range",
                                                "unimplemented",
                                                "internal_error",
                                                "unavailable",
                                                "data_loss",
                                                "unauthenticated",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "trace_id": {
                                    "description": " The trace ID.",
                                    "anyOf": [
                                        {
                                            "description": " A 32-character hex string as described in the W3C trace context spec.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="required",
                    )
                data_keys = set(data.keys())
                if "client_sample_rate" in data_keys:
                    data_keys.remove("client_sample_rate")
                    data__clientsamplerate = data["client_sample_rate"]
                    if not isinstance(
                        data__clientsamplerate, (int, float, Decimal, NoneType)
                    ) or isinstance(data__clientsamplerate, bool):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".client_sample_rate must be number or null",
                            value=data__clientsamplerate,
                            name="" + (name_prefix or "data") + ".client_sample_rate",
                            definition={
                                "description": " The client-side sample rate as reported in the envelope's `trace.sample_rate` header.\n\n The server takes this field from envelope headers and writes it back into the event. Clients\n should not ever send this value.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            rule="type",
                        )
                if "data" in data_keys:
                    data_keys.remove("data")
                    data__data = data["data"]
                    data__data_any_of_count144 = 0
                    if not data__data_any_of_count144:
                        try:
                            validate___definitions_spandata(
                                data__data,
                                custom_formats,
                                (name_prefix or "data") + ".data",
                            )
                            data__data_any_of_count144 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__data_any_of_count144:
                        try:
                            if not isinstance(data__data, (NoneType)):
                                raise JsonSchemaValueException(
                                    "" + (name_prefix or "data") + ".data must be null",
                                    value=data__data,
                                    name="" + (name_prefix or "data") + ".data",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__data_any_of_count144 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__data_any_of_count144:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".data cannot be validated by any definition",
                            value=data__data,
                            name="" + (name_prefix or "data") + ".data",
                            definition={
                                "description": " Data of the trace's root span.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Arbitrary additional data on a span.\n\n Besides arbitrary user data, this type also contains SDK-provided fields used by the\n product (see <https://develop.sentry.dev/sdk/performance/span-data-conventions/>).",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "ai.completion_tokens.used": {
                                                        "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                                        "default": None,
                                                    },
                                                    "ai.input_messages": {
                                                        "description": " The input messages to an AI model call",
                                                        "default": None,
                                                    },
                                                    "ai.model_id": {
                                                        "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                                        "default": None,
                                                    },
                                                    "ai.pipeline.name": {
                                                        "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                                        "default": None,
                                                    },
                                                    "ai.prompt_tokens.used": {
                                                        "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                                        "default": None,
                                                    },
                                                    "ai.responses": {
                                                        "description": " The responses to an AI model call",
                                                        "default": None,
                                                    },
                                                    "ai.total_tokens.used": {
                                                        "description": " The total tokens that were used by an LLM call",
                                                        "default": None,
                                                    },
                                                    "app_start_type": {
                                                        "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                                        "default": None,
                                                    },
                                                    "browser.name": {
                                                        "description": " The client's browser name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "cache.hit": {
                                                        "description": " Whether cache was hit or miss on a read operation.",
                                                        "default": None,
                                                    },
                                                    "cache.item_size": {
                                                        "description": " The size of the cache item.",
                                                        "default": None,
                                                    },
                                                    "cache.key": {
                                                        "description": " The name of the cache key.",
                                                        "default": None,
                                                    },
                                                    "client.address": {
                                                        "description": " The client's IP address.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "code.filepath": {
                                                        "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                                        "default": None,
                                                    },
                                                    "code.function": {
                                                        "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                                        "default": None,
                                                    },
                                                    "code.lineno": {
                                                        "description": " The line number in `code.filepath` best representing the operation.",
                                                        "default": None,
                                                    },
                                                    "code.namespace": {
                                                        "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                                        "default": None,
                                                    },
                                                    "db.operation": {
                                                        "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                                        "default": None,
                                                    },
                                                    "db.system": {
                                                        "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                                        "default": None,
                                                    },
                                                    "frames.delay": {"default": None},
                                                    "http.decoded_response_content_length": {
                                                        "description": " The decoded body size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "http.request_method": {
                                                        "description": " The HTTP method used.",
                                                        "default": None,
                                                    },
                                                    "http.response.status_code": {
                                                        "description": " The status HTTP response.",
                                                        "default": None,
                                                    },
                                                    "http.response_content_length": {
                                                        "description": " The encoded body size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "http.response_transfer_size": {
                                                        "description": " The transfer size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "messaging.destination.name": {
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "messaging.message.body.size": {
                                                        "description": " Message Body Size",
                                                        "default": None,
                                                    },
                                                    "messaging.message.id": {
                                                        "description": " Message ID",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "messaging.message.receive.latency": {
                                                        "description": " Message Receive Latency",
                                                        "default": None,
                                                    },
                                                    "messaging.message.retry.count": {
                                                        "description": " Message Retry Count",
                                                        "default": None,
                                                    },
                                                    "previousRoute": {
                                                        "description": " The previous route in the application\n\n Set by React Native SDK.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Route"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "resource.render_blocking_status": {
                                                        "description": " The render blocking status of the resource.",
                                                        "default": None,
                                                    },
                                                    "route": {
                                                        "description": " The current route in the application.\n\n Set by React Native SDK.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Route"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "sentry.environment": {
                                                        "description": " The sentry environment.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.frames.frozen": {
                                                        "description": " Frozen Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.frames.slow": {
                                                        "description": " Slow Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.frames.total": {
                                                        "description": " Total Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.release": {
                                                        "description": " The release version of the project.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.replay.id": {
                                                        "description": " Replay ID",
                                                        "default": None,
                                                    },
                                                    "sentry.sdk.name": {
                                                        "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.sdk.version": {
                                                        "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.segment.name": {
                                                        "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "server.address": {
                                                        "description": " Name of the web server host.",
                                                        "default": None,
                                                    },
                                                    "thread.id": {
                                                        "description": " ID of thread from where the span originated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/ThreadId"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "thread.name": {
                                                        "description": " Label identifying a thread from where the span originated.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "ui.component_name": {
                                                        "description": " Name of the UI component (e.g. React).",
                                                        "default": None,
                                                    },
                                                    "url.full": {
                                                        "description": " Absolute URL of a network resource.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "url.scheme": {
                                                        "description": ' The URL scheme, e.g. `"https"`.',
                                                        "default": None,
                                                    },
                                                    "user": {
                                                        "description": " User Display",
                                                        "default": None,
                                                    },
                                                    "user_agent.original": {
                                                        "description": " Value of the HTTP User-Agent header sent by the client.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "exclusive_time" in data_keys:
                    data_keys.remove("exclusive_time")
                    data__exclusivetime = data["exclusive_time"]
                    if not isinstance(
                        data__exclusivetime, (int, float, Decimal, NoneType)
                    ) or isinstance(data__exclusivetime, bool):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".exclusive_time must be number or null",
                            value=data__exclusivetime,
                            name="" + (name_prefix or "data") + ".exclusive_time",
                            definition={
                                "description": " The amount of time in milliseconds spent in this transaction span,\n excluding its immediate child spans.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            rule="type",
                        )
                if "op" in data_keys:
                    data_keys.remove("op")
                    data__op = data["op"]
                    if not isinstance(data__op, (str, NoneType)):
                        raise JsonSchemaValueException(
                            "" + (name_prefix or "data") + ".op must be string or null",
                            value=data__op,
                            name="" + (name_prefix or "data") + ".op",
                            definition={
                                "description": " Span type (see `OperationType` docs).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "origin" in data_keys:
                    data_keys.remove("origin")
                    data__origin = data["origin"]
                    if not isinstance(data__origin, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".origin must be string or null",
                            value=data__origin,
                            name="" + (name_prefix or "data") + ".origin",
                            definition={
                                "description": " The origin of the trace indicates what created the trace (see [OriginType] docs).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "parent_span_id" in data_keys:
                    data_keys.remove("parent_span_id")
                    data__parentspanid = data["parent_span_id"]
                    data__parentspanid_any_of_count145 = 0
                    if not data__parentspanid_any_of_count145:
                        try:
                            validate___definitions_spanid(
                                data__parentspanid,
                                custom_formats,
                                (name_prefix or "data") + ".parent_span_id",
                            )
                            data__parentspanid_any_of_count145 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__parentspanid_any_of_count145:
                        try:
                            if not isinstance(data__parentspanid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".parent_span_id must be null",
                                    value=data__parentspanid,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".parent_span_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__parentspanid_any_of_count145 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__parentspanid_any_of_count145:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".parent_span_id cannot be validated by any definition",
                            value=data__parentspanid,
                            name="" + (name_prefix or "data") + ".parent_span_id",
                            definition={
                                "description": " The ID of the span enclosing this span.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A 16-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "sampled" in data_keys:
                    data_keys.remove("sampled")
                    data__sampled = data["sampled"]
                    if not isinstance(data__sampled, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sampled must be boolean or null",
                            value=data__sampled,
                            name="" + (name_prefix or "data") + ".sampled",
                            definition={
                                "description": " Track whether the trace connected to this event has been sampled entirely.\n\n This flag only applies to events with [`Error`] type that have an associated dynamic sampling context.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "span_id" in data_keys:
                    data_keys.remove("span_id")
                    data__spanid = data["span_id"]
                    data__spanid_any_of_count146 = 0
                    if not data__spanid_any_of_count146:
                        try:
                            validate___definitions_spanid(
                                data__spanid,
                                custom_formats,
                                (name_prefix or "data") + ".span_id",
                            )
                            data__spanid_any_of_count146 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__spanid_any_of_count146:
                        try:
                            if not isinstance(data__spanid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".span_id must be null",
                                    value=data__spanid,
                                    name="" + (name_prefix or "data") + ".span_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__spanid_any_of_count146 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__spanid_any_of_count146:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".span_id cannot be validated by any definition",
                            value=data__spanid,
                            name="" + (name_prefix or "data") + ".span_id",
                            definition={
                                "description": " The ID of the span.",
                                "anyOf": [
                                    {
                                        "description": " A 16-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "status" in data_keys:
                    data_keys.remove("status")
                    data__status = data["status"]
                    data__status_any_of_count147 = 0
                    if not data__status_any_of_count147:
                        try:
                            validate___definitions_spanstatus(
                                data__status,
                                custom_formats,
                                (name_prefix or "data") + ".status",
                            )
                            data__status_any_of_count147 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__status_any_of_count147:
                        try:
                            if not isinstance(data__status, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".status must be null",
                                    value=data__status,
                                    name="" + (name_prefix or "data") + ".status",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__status_any_of_count147 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__status_any_of_count147:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".status cannot be validated by any definition",
                            value=data__status,
                            name="" + (name_prefix or "data") + ".status",
                            definition={
                                "description": " Whether the trace failed or succeeded. Currently only used to indicate status of individual\n transactions.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                                        "type": "string",
                                        "enum": [
                                            "ok",
                                            "cancelled",
                                            "unknown",
                                            "invalid_argument",
                                            "deadline_exceeded",
                                            "not_found",
                                            "already_exists",
                                            "permission_denied",
                                            "resource_exhausted",
                                            "failed_precondition",
                                            "aborted",
                                            "out_of_range",
                                            "unimplemented",
                                            "internal_error",
                                            "unavailable",
                                            "data_loss",
                                            "unauthenticated",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "trace_id" in data_keys:
                    data_keys.remove("trace_id")
                    data__traceid = data["trace_id"]
                    data__traceid_any_of_count148 = 0
                    if not data__traceid_any_of_count148:
                        try:
                            validate___definitions_traceid(
                                data__traceid,
                                custom_formats,
                                (name_prefix or "data") + ".trace_id",
                            )
                            data__traceid_any_of_count148 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__traceid_any_of_count148:
                        try:
                            if not isinstance(data__traceid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".trace_id must be null",
                                    value=data__traceid,
                                    name="" + (name_prefix or "data") + ".trace_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__traceid_any_of_count148 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__traceid_any_of_count148:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".trace_id cannot be validated by any definition",
                            value=data__traceid,
                            name="" + (name_prefix or "data") + ".trace_id",
                            definition={
                                "description": " The trace ID.",
                                "anyOf": [
                                    {
                                        "description": " A 32-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "required": ["span_id", "trace_id"],
                            "properties": {
                                "client_sample_rate": {
                                    "description": " The client-side sample rate as reported in the envelope's `trace.sample_rate` header.\n\n The server takes this field from envelope headers and writes it back into the event. Clients\n should not ever send this value.",
                                    "default": None,
                                    "type": ["number", "null"],
                                    "format": "double",
                                },
                                "data": {
                                    "description": " Data of the trace's root span.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Arbitrary additional data on a span.\n\n Besides arbitrary user data, this type also contains SDK-provided fields used by the\n product (see <https://develop.sentry.dev/sdk/performance/span-data-conventions/>).",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "ai.completion_tokens.used": {
                                                            "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                                            "default": None,
                                                        },
                                                        "ai.input_messages": {
                                                            "description": " The input messages to an AI model call",
                                                            "default": None,
                                                        },
                                                        "ai.model_id": {
                                                            "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                                            "default": None,
                                                        },
                                                        "ai.pipeline.name": {
                                                            "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                                            "default": None,
                                                        },
                                                        "ai.prompt_tokens.used": {
                                                            "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                                            "default": None,
                                                        },
                                                        "ai.responses": {
                                                            "description": " The responses to an AI model call",
                                                            "default": None,
                                                        },
                                                        "ai.total_tokens.used": {
                                                            "description": " The total tokens that were used by an LLM call",
                                                            "default": None,
                                                        },
                                                        "app_start_type": {
                                                            "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                                            "default": None,
                                                        },
                                                        "browser.name": {
                                                            "description": " The client's browser name.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "cache.hit": {
                                                            "description": " Whether cache was hit or miss on a read operation.",
                                                            "default": None,
                                                        },
                                                        "cache.item_size": {
                                                            "description": " The size of the cache item.",
                                                            "default": None,
                                                        },
                                                        "cache.key": {
                                                            "description": " The name of the cache key.",
                                                            "default": None,
                                                        },
                                                        "client.address": {
                                                            "description": " The client's IP address.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "code.filepath": {
                                                            "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                                            "default": None,
                                                        },
                                                        "code.function": {
                                                            "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                                            "default": None,
                                                        },
                                                        "code.lineno": {
                                                            "description": " The line number in `code.filepath` best representing the operation.",
                                                            "default": None,
                                                        },
                                                        "code.namespace": {
                                                            "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                                            "default": None,
                                                        },
                                                        "db.operation": {
                                                            "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                                            "default": None,
                                                        },
                                                        "db.system": {
                                                            "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                                            "default": None,
                                                        },
                                                        "frames.delay": {
                                                            "default": None
                                                        },
                                                        "http.decoded_response_content_length": {
                                                            "description": " The decoded body size of the response (in bytes).",
                                                            "default": None,
                                                        },
                                                        "http.request_method": {
                                                            "description": " The HTTP method used.",
                                                            "default": None,
                                                        },
                                                        "http.response.status_code": {
                                                            "description": " The status HTTP response.",
                                                            "default": None,
                                                        },
                                                        "http.response_content_length": {
                                                            "description": " The encoded body size of the response (in bytes).",
                                                            "default": None,
                                                        },
                                                        "http.response_transfer_size": {
                                                            "description": " The transfer size of the response (in bytes).",
                                                            "default": None,
                                                        },
                                                        "messaging.destination.name": {
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "messaging.message.body.size": {
                                                            "description": " Message Body Size",
                                                            "default": None,
                                                        },
                                                        "messaging.message.id": {
                                                            "description": " Message ID",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "messaging.message.receive.latency": {
                                                            "description": " Message Receive Latency",
                                                            "default": None,
                                                        },
                                                        "messaging.message.retry.count": {
                                                            "description": " Message Retry Count",
                                                            "default": None,
                                                        },
                                                        "previousRoute": {
                                                            "description": " The previous route in the application\n\n Set by React Native SDK.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Route"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "resource.render_blocking_status": {
                                                            "description": " The render blocking status of the resource.",
                                                            "default": None,
                                                        },
                                                        "route": {
                                                            "description": " The current route in the application.\n\n Set by React Native SDK.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/Route"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "sentry.environment": {
                                                            "description": " The sentry environment.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry.frames.frozen": {
                                                            "description": " Frozen Frames",
                                                            "default": None,
                                                        },
                                                        "sentry.frames.slow": {
                                                            "description": " Slow Frames",
                                                            "default": None,
                                                        },
                                                        "sentry.frames.total": {
                                                            "description": " Total Frames",
                                                            "default": None,
                                                        },
                                                        "sentry.release": {
                                                            "description": " The release version of the project.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry.replay.id": {
                                                            "description": " Replay ID",
                                                            "default": None,
                                                        },
                                                        "sentry.sdk.name": {
                                                            "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry.sdk.version": {
                                                            "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "sentry.segment.name": {
                                                            "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "server.address": {
                                                            "description": " Name of the web server host.",
                                                            "default": None,
                                                        },
                                                        "thread.id": {
                                                            "description": " ID of thread from where the span originated.",
                                                            "default": None,
                                                            "anyOf": [
                                                                {
                                                                    "$ref": "#/definitions/ThreadId"
                                                                },
                                                                {"type": "null"},
                                                            ],
                                                        },
                                                        "thread.name": {
                                                            "description": " Label identifying a thread from where the span originated.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "ui.component_name": {
                                                            "description": " Name of the UI component (e.g. React).",
                                                            "default": None,
                                                        },
                                                        "url.full": {
                                                            "description": " Absolute URL of a network resource.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "url.scheme": {
                                                            "description": ' The URL scheme, e.g. `"https"`.',
                                                            "default": None,
                                                        },
                                                        "user": {
                                                            "description": " User Display",
                                                            "default": None,
                                                        },
                                                        "user_agent.original": {
                                                            "description": " Value of the HTTP User-Agent header sent by the client.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "exclusive_time": {
                                    "description": " The amount of time in milliseconds spent in this transaction span,\n excluding its immediate child spans.",
                                    "default": None,
                                    "type": ["number", "null"],
                                    "format": "double",
                                },
                                "op": {
                                    "description": " Span type (see `OperationType` docs).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "origin": {
                                    "description": " The origin of the trace indicates what created the trace (see [OriginType] docs).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "parent_span_id": {
                                    "description": " The ID of the span enclosing this span.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " A 16-character hex string as described in the W3C trace context spec.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "sampled": {
                                    "description": " Track whether the trace connected to this event has been sampled entirely.\n\n This flag only applies to events with [`Error`] type that have an associated dynamic sampling context.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "span_id": {
                                    "description": " The ID of the span.",
                                    "anyOf": [
                                        {
                                            "description": " A 16-character hex string as described in the W3C trace context spec.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "status": {
                                    "description": " Whether the trace failed or succeeded. Currently only used to indicate status of individual\n transactions.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                                            "type": "string",
                                            "enum": [
                                                "ok",
                                                "cancelled",
                                                "unknown",
                                                "invalid_argument",
                                                "deadline_exceeded",
                                                "not_found",
                                                "already_exists",
                                                "permission_denied",
                                                "resource_exhausted",
                                                "failed_precondition",
                                                "aborted",
                                                "out_of_range",
                                                "unimplemented",
                                                "internal_error",
                                                "unavailable",
                                                "data_loss",
                                                "unauthenticated",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "trace_id": {
                                    "description": " The trace ID.",
                                    "anyOf": [
                                        {
                                            "description": " A 32-character hex string as described in the W3C trace context spec.",
                                            "anyOf": [{"type": "string"}],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count143 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count143:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Trace context",
                "anyOf": [
                    {
                        "type": "object",
                        "required": ["span_id", "trace_id"],
                        "properties": {
                            "client_sample_rate": {
                                "description": " The client-side sample rate as reported in the envelope's `trace.sample_rate` header.\n\n The server takes this field from envelope headers and writes it back into the event. Clients\n should not ever send this value.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "data": {
                                "description": " Data of the trace's root span.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Arbitrary additional data on a span.\n\n Besides arbitrary user data, this type also contains SDK-provided fields used by the\n product (see <https://develop.sentry.dev/sdk/performance/span-data-conventions/>).",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "ai.completion_tokens.used": {
                                                        "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                                        "default": None,
                                                    },
                                                    "ai.input_messages": {
                                                        "description": " The input messages to an AI model call",
                                                        "default": None,
                                                    },
                                                    "ai.model_id": {
                                                        "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                                        "default": None,
                                                    },
                                                    "ai.pipeline.name": {
                                                        "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                                        "default": None,
                                                    },
                                                    "ai.prompt_tokens.used": {
                                                        "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                                        "default": None,
                                                    },
                                                    "ai.responses": {
                                                        "description": " The responses to an AI model call",
                                                        "default": None,
                                                    },
                                                    "ai.total_tokens.used": {
                                                        "description": " The total tokens that were used by an LLM call",
                                                        "default": None,
                                                    },
                                                    "app_start_type": {
                                                        "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                                        "default": None,
                                                    },
                                                    "browser.name": {
                                                        "description": " The client's browser name.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "cache.hit": {
                                                        "description": " Whether cache was hit or miss on a read operation.",
                                                        "default": None,
                                                    },
                                                    "cache.item_size": {
                                                        "description": " The size of the cache item.",
                                                        "default": None,
                                                    },
                                                    "cache.key": {
                                                        "description": " The name of the cache key.",
                                                        "default": None,
                                                    },
                                                    "client.address": {
                                                        "description": " The client's IP address.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "code.filepath": {
                                                        "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                                        "default": None,
                                                    },
                                                    "code.function": {
                                                        "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                                        "default": None,
                                                    },
                                                    "code.lineno": {
                                                        "description": " The line number in `code.filepath` best representing the operation.",
                                                        "default": None,
                                                    },
                                                    "code.namespace": {
                                                        "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                                        "default": None,
                                                    },
                                                    "db.operation": {
                                                        "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                                        "default": None,
                                                    },
                                                    "db.system": {
                                                        "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                                        "default": None,
                                                    },
                                                    "frames.delay": {"default": None},
                                                    "http.decoded_response_content_length": {
                                                        "description": " The decoded body size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "http.request_method": {
                                                        "description": " The HTTP method used.",
                                                        "default": None,
                                                    },
                                                    "http.response.status_code": {
                                                        "description": " The status HTTP response.",
                                                        "default": None,
                                                    },
                                                    "http.response_content_length": {
                                                        "description": " The encoded body size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "http.response_transfer_size": {
                                                        "description": " The transfer size of the response (in bytes).",
                                                        "default": None,
                                                    },
                                                    "messaging.destination.name": {
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "messaging.message.body.size": {
                                                        "description": " Message Body Size",
                                                        "default": None,
                                                    },
                                                    "messaging.message.id": {
                                                        "description": " Message ID",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "messaging.message.receive.latency": {
                                                        "description": " Message Receive Latency",
                                                        "default": None,
                                                    },
                                                    "messaging.message.retry.count": {
                                                        "description": " Message Retry Count",
                                                        "default": None,
                                                    },
                                                    "previousRoute": {
                                                        "description": " The previous route in the application\n\n Set by React Native SDK.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Route"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "resource.render_blocking_status": {
                                                        "description": " The render blocking status of the resource.",
                                                        "default": None,
                                                    },
                                                    "route": {
                                                        "description": " The current route in the application.\n\n Set by React Native SDK.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/Route"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "sentry.environment": {
                                                        "description": " The sentry environment.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.frames.frozen": {
                                                        "description": " Frozen Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.frames.slow": {
                                                        "description": " Slow Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.frames.total": {
                                                        "description": " Total Frames",
                                                        "default": None,
                                                    },
                                                    "sentry.release": {
                                                        "description": " The release version of the project.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.replay.id": {
                                                        "description": " Replay ID",
                                                        "default": None,
                                                    },
                                                    "sentry.sdk.name": {
                                                        "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.sdk.version": {
                                                        "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "sentry.segment.name": {
                                                        "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "server.address": {
                                                        "description": " Name of the web server host.",
                                                        "default": None,
                                                    },
                                                    "thread.id": {
                                                        "description": " ID of thread from where the span originated.",
                                                        "default": None,
                                                        "anyOf": [
                                                            {
                                                                "$ref": "#/definitions/ThreadId"
                                                            },
                                                            {"type": "null"},
                                                        ],
                                                    },
                                                    "thread.name": {
                                                        "description": " Label identifying a thread from where the span originated.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "ui.component_name": {
                                                        "description": " Name of the UI component (e.g. React).",
                                                        "default": None,
                                                    },
                                                    "url.full": {
                                                        "description": " Absolute URL of a network resource.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "url.scheme": {
                                                        "description": ' The URL scheme, e.g. `"https"`.',
                                                        "default": None,
                                                    },
                                                    "user": {
                                                        "description": " User Display",
                                                        "default": None,
                                                    },
                                                    "user_agent.original": {
                                                        "description": " Value of the HTTP User-Agent header sent by the client.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "exclusive_time": {
                                "description": " The amount of time in milliseconds spent in this transaction span,\n excluding its immediate child spans.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "op": {
                                "description": " Span type (see `OperationType` docs).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "origin": {
                                "description": " The origin of the trace indicates what created the trace (see [OriginType] docs).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "parent_span_id": {
                                "description": " The ID of the span enclosing this span.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " A 16-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "sampled": {
                                "description": " Track whether the trace connected to this event has been sampled entirely.\n\n This flag only applies to events with [`Error`] type that have an associated dynamic sampling context.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "span_id": {
                                "description": " The ID of the span.",
                                "anyOf": [
                                    {
                                        "description": " A 16-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "status": {
                                "description": " Whether the trace failed or succeeded. Currently only used to indicate status of individual\n transactions.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                                        "type": "string",
                                        "enum": [
                                            "ok",
                                            "cancelled",
                                            "unknown",
                                            "invalid_argument",
                                            "deadline_exceeded",
                                            "not_found",
                                            "already_exists",
                                            "permission_denied",
                                            "resource_exhausted",
                                            "failed_precondition",
                                            "aborted",
                                            "out_of_range",
                                            "unimplemented",
                                            "internal_error",
                                            "unavailable",
                                            "data_loss",
                                            "unauthenticated",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "trace_id": {
                                "description": " The trace ID.",
                                "anyOf": [
                                    {
                                        "description": " A 32-character hex string as described in the W3C trace context spec.",
                                        "anyOf": [{"type": "string"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_traceid(data, custom_formats={}, name_prefix=None):
    data_any_of_count149 = 0
    if not data_any_of_count149:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count149 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count149:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " A 32-character hex string as described in the W3C trace context spec.",
                "anyOf": [{"type": "string"}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_spanstatus(data, custom_formats={}, name_prefix=None):
    if not isinstance(data, (str)):
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " must be string",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                "type": "string",
                "enum": [
                    "ok",
                    "cancelled",
                    "unknown",
                    "invalid_argument",
                    "deadline_exceeded",
                    "not_found",
                    "already_exists",
                    "permission_denied",
                    "resource_exhausted",
                    "failed_precondition",
                    "aborted",
                    "out_of_range",
                    "unimplemented",
                    "internal_error",
                    "unavailable",
                    "data_loss",
                    "unauthenticated",
                ],
            },
            rule="type",
        )
    if data not in [
        "ok",
        "cancelled",
        "unknown",
        "invalid_argument",
        "deadline_exceeded",
        "not_found",
        "already_exists",
        "permission_denied",
        "resource_exhausted",
        "failed_precondition",
        "aborted",
        "out_of_range",
        "unimplemented",
        "internal_error",
        "unavailable",
        "data_loss",
        "unauthenticated",
    ]:
        raise JsonSchemaValueException(
            ""
            + (name_prefix or "data")
            + " must be one of ['ok', 'cancelled', 'unknown', 'invalid_argument', 'deadline_exceeded', 'not_found', 'already_exists', 'permission_denied', 'resource_exhausted', 'failed_precondition', 'aborted', 'out_of_range', 'unimplemented', 'internal_error', 'unavailable', 'data_loss', 'unauthenticated']",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": "Trace status.\n\nValues from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/api-tracing.md#status> Mapping to HTTP from <https://github.com/open-telemetry/opentelemetry-specification/blob/8fb6c14e4709e75a9aaa64b0dbbdf02a6067682a/specification/data-http.md#status>",
                "type": "string",
                "enum": [
                    "ok",
                    "cancelled",
                    "unknown",
                    "invalid_argument",
                    "deadline_exceeded",
                    "not_found",
                    "already_exists",
                    "permission_denied",
                    "resource_exhausted",
                    "failed_precondition",
                    "aborted",
                    "out_of_range",
                    "unimplemented",
                    "internal_error",
                    "unavailable",
                    "data_loss",
                    "unauthenticated",
                ],
            },
            rule="enum",
        )
    return data


def validate___definitions_spanid(data, custom_formats={}, name_prefix=None):
    data_any_of_count150 = 0
    if not data_any_of_count150:
        try:
            if not isinstance(data, (str)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be string",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={"type": "string"},
                    rule="type",
                )
            data_any_of_count150 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count150:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " A 16-character hex string as described in the W3C trace context spec.",
                "anyOf": [{"type": "string"}],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_spandata(data, custom_formats={}, name_prefix=None):
    data_any_of_count151 = 0
    if not data_any_of_count151:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "ai.completion_tokens.used": {
                                "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                "default": None,
                            },
                            "ai.input_messages": {
                                "description": " The input messages to an AI model call",
                                "default": None,
                            },
                            "ai.model_id": {
                                "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                "default": None,
                            },
                            "ai.pipeline.name": {
                                "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                "default": None,
                            },
                            "ai.prompt_tokens.used": {
                                "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                "default": None,
                            },
                            "ai.responses": {
                                "description": " The responses to an AI model call",
                                "default": None,
                            },
                            "ai.total_tokens.used": {
                                "description": " The total tokens that were used by an LLM call",
                                "default": None,
                            },
                            "app_start_type": {
                                "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                "default": None,
                            },
                            "browser.name": {
                                "description": " The client's browser name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cache.hit": {
                                "description": " Whether cache was hit or miss on a read operation.",
                                "default": None,
                            },
                            "cache.item_size": {
                                "description": " The size of the cache item.",
                                "default": None,
                            },
                            "cache.key": {
                                "description": " The name of the cache key.",
                                "default": None,
                            },
                            "client.address": {
                                "description": " The client's IP address.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "code.filepath": {
                                "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                "default": None,
                            },
                            "code.function": {
                                "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                "default": None,
                            },
                            "code.lineno": {
                                "description": " The line number in `code.filepath` best representing the operation.",
                                "default": None,
                            },
                            "code.namespace": {
                                "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                "default": None,
                            },
                            "db.operation": {
                                "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                "default": None,
                            },
                            "db.system": {
                                "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                "default": None,
                            },
                            "frames.delay": {"default": None},
                            "http.decoded_response_content_length": {
                                "description": " The decoded body size of the response (in bytes).",
                                "default": None,
                            },
                            "http.request_method": {
                                "description": " The HTTP method used.",
                                "default": None,
                            },
                            "http.response.status_code": {
                                "description": " The status HTTP response.",
                                "default": None,
                            },
                            "http.response_content_length": {
                                "description": " The encoded body size of the response (in bytes).",
                                "default": None,
                            },
                            "http.response_transfer_size": {
                                "description": " The transfer size of the response (in bytes).",
                                "default": None,
                            },
                            "messaging.destination.name": {
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "messaging.message.body.size": {
                                "description": " Message Body Size",
                                "default": None,
                            },
                            "messaging.message.id": {
                                "description": " Message ID",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "messaging.message.receive.latency": {
                                "description": " Message Receive Latency",
                                "default": None,
                            },
                            "messaging.message.retry.count": {
                                "description": " Message Retry Count",
                                "default": None,
                            },
                            "previousRoute": {
                                "description": " The previous route in the application\n\n Set by React Native SDK.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The route in the application, set by React Native SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " The name of the route.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "params": {
                                                        "description": " Parameters assigned to this route.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "resource.render_blocking_status": {
                                "description": " The render blocking status of the resource.",
                                "default": None,
                            },
                            "route": {
                                "description": " The current route in the application.\n\n Set by React Native SDK.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The route in the application, set by React Native SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " The name of the route.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "params": {
                                                        "description": " Parameters assigned to this route.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "sentry.environment": {
                                "description": " The sentry environment.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry.frames.frozen": {
                                "description": " Frozen Frames",
                                "default": None,
                            },
                            "sentry.frames.slow": {
                                "description": " Slow Frames",
                                "default": None,
                            },
                            "sentry.frames.total": {
                                "description": " Total Frames",
                                "default": None,
                            },
                            "sentry.release": {
                                "description": " The release version of the project.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry.replay.id": {
                                "description": " Replay ID",
                                "default": None,
                            },
                            "sentry.sdk.name": {
                                "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry.sdk.version": {
                                "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry.segment.name": {
                                "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "server.address": {
                                "description": " Name of the web server host.",
                                "default": None,
                            },
                            "thread.id": {
                                "description": " ID of thread from where the span originated.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "thread.name": {
                                "description": " Label identifying a thread from where the span originated.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "ui.component_name": {
                                "description": " Name of the UI component (e.g. React).",
                                "default": None,
                            },
                            "url.full": {
                                "description": " Absolute URL of a network resource.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "url.scheme": {
                                "description": ' The URL scheme, e.g. `"https"`.',
                                "default": None,
                            },
                            "user": {"description": " User Display", "default": None},
                            "user_agent.original": {
                                "description": " Value of the HTTP User-Agent header sent by the client.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "ai.completion_tokens.used" in data_keys:
                    data_keys.remove("ai.completion_tokens.used")
                    data__aicompletiontokensused = data["ai.completion_tokens.used"]
                if "ai.input_messages" in data_keys:
                    data_keys.remove("ai.input_messages")
                    data__aiinputmessages = data["ai.input_messages"]
                if "ai.model_id" in data_keys:
                    data_keys.remove("ai.model_id")
                    data__aimodelid = data["ai.model_id"]
                if "ai.pipeline.name" in data_keys:
                    data_keys.remove("ai.pipeline.name")
                    data__aipipelinename = data["ai.pipeline.name"]
                if "ai.prompt_tokens.used" in data_keys:
                    data_keys.remove("ai.prompt_tokens.used")
                    data__aiprompttokensused = data["ai.prompt_tokens.used"]
                if "ai.responses" in data_keys:
                    data_keys.remove("ai.responses")
                    data__airesponses = data["ai.responses"]
                if "ai.total_tokens.used" in data_keys:
                    data_keys.remove("ai.total_tokens.used")
                    data__aitotaltokensused = data["ai.total_tokens.used"]
                if "app_start_type" in data_keys:
                    data_keys.remove("app_start_type")
                    data__appstarttype = data["app_start_type"]
                if "browser.name" in data_keys:
                    data_keys.remove("browser.name")
                    data__browsername = data["browser.name"]
                    if not isinstance(data__browsername, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".browser.name must be string or null",
                            value=data__browsername,
                            name="" + (name_prefix or "data") + ".browser.name",
                            definition={
                                "description": " The client's browser name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "cache.hit" in data_keys:
                    data_keys.remove("cache.hit")
                    data__cachehit = data["cache.hit"]
                if "cache.item_size" in data_keys:
                    data_keys.remove("cache.item_size")
                    data__cacheitemsize = data["cache.item_size"]
                if "cache.key" in data_keys:
                    data_keys.remove("cache.key")
                    data__cachekey = data["cache.key"]
                if "client.address" in data_keys:
                    data_keys.remove("client.address")
                    data__clientaddress = data["client.address"]
                    if not isinstance(data__clientaddress, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".client.address must be string or null",
                            value=data__clientaddress,
                            name="" + (name_prefix or "data") + ".client.address",
                            definition={
                                "description": " The client's IP address.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "code.filepath" in data_keys:
                    data_keys.remove("code.filepath")
                    data__codefilepath = data["code.filepath"]
                if "code.function" in data_keys:
                    data_keys.remove("code.function")
                    data__codefunction = data["code.function"]
                if "code.lineno" in data_keys:
                    data_keys.remove("code.lineno")
                    data__codelineno = data["code.lineno"]
                if "code.namespace" in data_keys:
                    data_keys.remove("code.namespace")
                    data__codenamespace = data["code.namespace"]
                if "db.operation" in data_keys:
                    data_keys.remove("db.operation")
                    data__dboperation = data["db.operation"]
                if "db.system" in data_keys:
                    data_keys.remove("db.system")
                    data__dbsystem = data["db.system"]
                if "frames.delay" in data_keys:
                    data_keys.remove("frames.delay")
                    data__framesdelay = data["frames.delay"]
                if "http.decoded_response_content_length" in data_keys:
                    data_keys.remove("http.decoded_response_content_length")
                    data__httpdecodedresponsecontentlength = data[
                        "http.decoded_response_content_length"
                    ]
                if "http.request_method" in data_keys:
                    data_keys.remove("http.request_method")
                    data__httprequestmethod = data["http.request_method"]
                if "http.response.status_code" in data_keys:
                    data_keys.remove("http.response.status_code")
                    data__httpresponsestatuscode = data["http.response.status_code"]
                if "http.response_content_length" in data_keys:
                    data_keys.remove("http.response_content_length")
                    data__httpresponsecontentlength = data[
                        "http.response_content_length"
                    ]
                if "http.response_transfer_size" in data_keys:
                    data_keys.remove("http.response_transfer_size")
                    data__httpresponsetransfersize = data["http.response_transfer_size"]
                if "messaging.destination.name" in data_keys:
                    data_keys.remove("messaging.destination.name")
                    data__messagingdestinationname = data["messaging.destination.name"]
                    if not isinstance(data__messagingdestinationname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".messaging.destination.name must be string or null",
                            value=data__messagingdestinationname,
                            name=""
                            + (name_prefix or "data")
                            + ".messaging.destination.name",
                            definition={"default": None, "type": ["string", "null"]},
                            rule="type",
                        )
                if "messaging.message.body.size" in data_keys:
                    data_keys.remove("messaging.message.body.size")
                    data__messagingmessagebodysize = data["messaging.message.body.size"]
                if "messaging.message.id" in data_keys:
                    data_keys.remove("messaging.message.id")
                    data__messagingmessageid = data["messaging.message.id"]
                    if not isinstance(data__messagingmessageid, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".messaging.message.id must be string or null",
                            value=data__messagingmessageid,
                            name="" + (name_prefix or "data") + ".messaging.message.id",
                            definition={
                                "description": " Message ID",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "messaging.message.receive.latency" in data_keys:
                    data_keys.remove("messaging.message.receive.latency")
                    data__messagingmessagereceivelatency = data[
                        "messaging.message.receive.latency"
                    ]
                if "messaging.message.retry.count" in data_keys:
                    data_keys.remove("messaging.message.retry.count")
                    data__messagingmessageretrycount = data[
                        "messaging.message.retry.count"
                    ]
                if "previousRoute" in data_keys:
                    data_keys.remove("previousRoute")
                    data__previousRoute = data["previousRoute"]
                    data__previousRoute_any_of_count152 = 0
                    if not data__previousRoute_any_of_count152:
                        try:
                            validate___definitions_route(
                                data__previousRoute,
                                custom_formats,
                                (name_prefix or "data") + ".previousRoute",
                            )
                            data__previousRoute_any_of_count152 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__previousRoute_any_of_count152:
                        try:
                            if not isinstance(data__previousRoute, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".previousRoute must be null",
                                    value=data__previousRoute,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".previousRoute",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__previousRoute_any_of_count152 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__previousRoute_any_of_count152:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".previousRoute cannot be validated by any definition",
                            value=data__previousRoute,
                            name="" + (name_prefix or "data") + ".previousRoute",
                            definition={
                                "description": " The previous route in the application\n\n Set by React Native SDK.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The route in the application, set by React Native SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " The name of the route.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "params": {
                                                        "description": " Parameters assigned to this route.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "resource.render_blocking_status" in data_keys:
                    data_keys.remove("resource.render_blocking_status")
                    data__resourcerenderblockingstatus = data[
                        "resource.render_blocking_status"
                    ]
                if "route" in data_keys:
                    data_keys.remove("route")
                    data__route = data["route"]
                    data__route_any_of_count153 = 0
                    if not data__route_any_of_count153:
                        try:
                            validate___definitions_route(
                                data__route,
                                custom_formats,
                                (name_prefix or "data") + ".route",
                            )
                            data__route_any_of_count153 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__route_any_of_count153:
                        try:
                            if not isinstance(data__route, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".route must be null",
                                    value=data__route,
                                    name="" + (name_prefix or "data") + ".route",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__route_any_of_count153 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__route_any_of_count153:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".route cannot be validated by any definition",
                            value=data__route,
                            name="" + (name_prefix or "data") + ".route",
                            definition={
                                "description": " The current route in the application.\n\n Set by React Native SDK.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The route in the application, set by React Native SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " The name of the route.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "params": {
                                                        "description": " Parameters assigned to this route.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "sentry.environment" in data_keys:
                    data_keys.remove("sentry.environment")
                    data__sentryenvironment = data["sentry.environment"]
                    if not isinstance(data__sentryenvironment, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sentry.environment must be string or null",
                            value=data__sentryenvironment,
                            name="" + (name_prefix or "data") + ".sentry.environment",
                            definition={
                                "description": " The sentry environment.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "sentry.frames.frozen" in data_keys:
                    data_keys.remove("sentry.frames.frozen")
                    data__sentryframesfrozen = data["sentry.frames.frozen"]
                if "sentry.frames.slow" in data_keys:
                    data_keys.remove("sentry.frames.slow")
                    data__sentryframesslow = data["sentry.frames.slow"]
                if "sentry.frames.total" in data_keys:
                    data_keys.remove("sentry.frames.total")
                    data__sentryframestotal = data["sentry.frames.total"]
                if "sentry.release" in data_keys:
                    data_keys.remove("sentry.release")
                    data__sentryrelease = data["sentry.release"]
                    if not isinstance(data__sentryrelease, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sentry.release must be string or null",
                            value=data__sentryrelease,
                            name="" + (name_prefix or "data") + ".sentry.release",
                            definition={
                                "description": " The release version of the project.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "sentry.replay.id" in data_keys:
                    data_keys.remove("sentry.replay.id")
                    data__sentryreplayid = data["sentry.replay.id"]
                if "sentry.sdk.name" in data_keys:
                    data_keys.remove("sentry.sdk.name")
                    data__sentrysdkname = data["sentry.sdk.name"]
                    if not isinstance(data__sentrysdkname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sentry.sdk.name must be string or null",
                            value=data__sentrysdkname,
                            name="" + (name_prefix or "data") + ".sentry.sdk.name",
                            definition={
                                "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "sentry.sdk.version" in data_keys:
                    data_keys.remove("sentry.sdk.version")
                    data__sentrysdkversion = data["sentry.sdk.version"]
                    if not isinstance(data__sentrysdkversion, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sentry.sdk.version must be string or null",
                            value=data__sentrysdkversion,
                            name="" + (name_prefix or "data") + ".sentry.sdk.version",
                            definition={
                                "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "sentry.segment.name" in data_keys:
                    data_keys.remove("sentry.segment.name")
                    data__sentrysegmentname = data["sentry.segment.name"]
                    if not isinstance(data__sentrysegmentname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".sentry.segment.name must be string or null",
                            value=data__sentrysegmentname,
                            name="" + (name_prefix or "data") + ".sentry.segment.name",
                            definition={
                                "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "server.address" in data_keys:
                    data_keys.remove("server.address")
                    data__serveraddress = data["server.address"]
                if "thread.id" in data_keys:
                    data_keys.remove("thread.id")
                    data__threadid = data["thread.id"]
                    data__threadid_any_of_count154 = 0
                    if not data__threadid_any_of_count154:
                        try:
                            validate___definitions_threadid(
                                data__threadid,
                                custom_formats,
                                (name_prefix or "data") + ".thread.id",
                            )
                            data__threadid_any_of_count154 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__threadid_any_of_count154:
                        try:
                            if not isinstance(data__threadid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".thread.id must be null",
                                    value=data__threadid,
                                    name="" + (name_prefix or "data") + ".thread.id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__threadid_any_of_count154 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__threadid_any_of_count154:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".thread.id cannot be validated by any definition",
                            value=data__threadid,
                            name="" + (name_prefix or "data") + ".thread.id",
                            definition={
                                "description": " ID of thread from where the span originated.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "thread.name" in data_keys:
                    data_keys.remove("thread.name")
                    data__threadname = data["thread.name"]
                    if not isinstance(data__threadname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".thread.name must be string or null",
                            value=data__threadname,
                            name="" + (name_prefix or "data") + ".thread.name",
                            definition={
                                "description": " Label identifying a thread from where the span originated.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "ui.component_name" in data_keys:
                    data_keys.remove("ui.component_name")
                    data__uicomponentname = data["ui.component_name"]
                if "url.full" in data_keys:
                    data_keys.remove("url.full")
                    data__urlfull = data["url.full"]
                    if not isinstance(data__urlfull, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".url.full must be string or null",
                            value=data__urlfull,
                            name="" + (name_prefix or "data") + ".url.full",
                            definition={
                                "description": " Absolute URL of a network resource.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "url.scheme" in data_keys:
                    data_keys.remove("url.scheme")
                    data__urlscheme = data["url.scheme"]
                if "user" in data_keys:
                    data_keys.remove("user")
                    data__user = data["user"]
                if "user_agent.original" in data_keys:
                    data_keys.remove("user_agent.original")
                    data__useragentoriginal = data["user_agent.original"]
                    if not isinstance(data__useragentoriginal, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".user_agent.original must be string or null",
                            value=data__useragentoriginal,
                            name="" + (name_prefix or "data") + ".user_agent.original",
                            definition={
                                "description": " Value of the HTTP User-Agent header sent by the client.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "ai.completion_tokens.used": {
                                    "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                    "default": None,
                                },
                                "ai.input_messages": {
                                    "description": " The input messages to an AI model call",
                                    "default": None,
                                },
                                "ai.model_id": {
                                    "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                    "default": None,
                                },
                                "ai.pipeline.name": {
                                    "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                    "default": None,
                                },
                                "ai.prompt_tokens.used": {
                                    "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                    "default": None,
                                },
                                "ai.responses": {
                                    "description": " The responses to an AI model call",
                                    "default": None,
                                },
                                "ai.total_tokens.used": {
                                    "description": " The total tokens that were used by an LLM call",
                                    "default": None,
                                },
                                "app_start_type": {
                                    "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                    "default": None,
                                },
                                "browser.name": {
                                    "description": " The client's browser name.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "cache.hit": {
                                    "description": " Whether cache was hit or miss on a read operation.",
                                    "default": None,
                                },
                                "cache.item_size": {
                                    "description": " The size of the cache item.",
                                    "default": None,
                                },
                                "cache.key": {
                                    "description": " The name of the cache key.",
                                    "default": None,
                                },
                                "client.address": {
                                    "description": " The client's IP address.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "code.filepath": {
                                    "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                    "default": None,
                                },
                                "code.function": {
                                    "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                    "default": None,
                                },
                                "code.lineno": {
                                    "description": " The line number in `code.filepath` best representing the operation.",
                                    "default": None,
                                },
                                "code.namespace": {
                                    "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                    "default": None,
                                },
                                "db.operation": {
                                    "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                    "default": None,
                                },
                                "db.system": {
                                    "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                    "default": None,
                                },
                                "frames.delay": {"default": None},
                                "http.decoded_response_content_length": {
                                    "description": " The decoded body size of the response (in bytes).",
                                    "default": None,
                                },
                                "http.request_method": {
                                    "description": " The HTTP method used.",
                                    "default": None,
                                },
                                "http.response.status_code": {
                                    "description": " The status HTTP response.",
                                    "default": None,
                                },
                                "http.response_content_length": {
                                    "description": " The encoded body size of the response (in bytes).",
                                    "default": None,
                                },
                                "http.response_transfer_size": {
                                    "description": " The transfer size of the response (in bytes).",
                                    "default": None,
                                },
                                "messaging.destination.name": {
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "messaging.message.body.size": {
                                    "description": " Message Body Size",
                                    "default": None,
                                },
                                "messaging.message.id": {
                                    "description": " Message ID",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "messaging.message.receive.latency": {
                                    "description": " Message Receive Latency",
                                    "default": None,
                                },
                                "messaging.message.retry.count": {
                                    "description": " Message Retry Count",
                                    "default": None,
                                },
                                "previousRoute": {
                                    "description": " The previous route in the application\n\n Set by React Native SDK.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " The route in the application, set by React Native SDK.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "name": {
                                                            "description": " The name of the route.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "params": {
                                                            "description": " Parameters assigned to this route.",
                                                            "default": None,
                                                            "type": ["object", "null"],
                                                            "additionalProperties": True,
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "resource.render_blocking_status": {
                                    "description": " The render blocking status of the resource.",
                                    "default": None,
                                },
                                "route": {
                                    "description": " The current route in the application.\n\n Set by React Native SDK.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " The route in the application, set by React Native SDK.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "name": {
                                                            "description": " The name of the route.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "params": {
                                                            "description": " Parameters assigned to this route.",
                                                            "default": None,
                                                            "type": ["object", "null"],
                                                            "additionalProperties": True,
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "sentry.environment": {
                                    "description": " The sentry environment.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "sentry.frames.frozen": {
                                    "description": " Frozen Frames",
                                    "default": None,
                                },
                                "sentry.frames.slow": {
                                    "description": " Slow Frames",
                                    "default": None,
                                },
                                "sentry.frames.total": {
                                    "description": " Total Frames",
                                    "default": None,
                                },
                                "sentry.release": {
                                    "description": " The release version of the project.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "sentry.replay.id": {
                                    "description": " Replay ID",
                                    "default": None,
                                },
                                "sentry.sdk.name": {
                                    "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "sentry.sdk.version": {
                                    "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "sentry.segment.name": {
                                    "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "server.address": {
                                    "description": " Name of the web server host.",
                                    "default": None,
                                },
                                "thread.id": {
                                    "description": " ID of thread from where the span originated.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Represents a thread id.",
                                            "anyOf": [
                                                {
                                                    "type": "integer",
                                                    "format": "uint64",
                                                    "minimum": 0.0,
                                                },
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "thread.name": {
                                    "description": " Label identifying a thread from where the span originated.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "ui.component_name": {
                                    "description": " Name of the UI component (e.g. React).",
                                    "default": None,
                                },
                                "url.full": {
                                    "description": " Absolute URL of a network resource.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "url.scheme": {
                                    "description": ' The URL scheme, e.g. `"https"`.',
                                    "default": None,
                                },
                                "user": {
                                    "description": " User Display",
                                    "default": None,
                                },
                                "user_agent.original": {
                                    "description": " Value of the HTTP User-Agent header sent by the client.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count151 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count151:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Arbitrary additional data on a span.\n\n Besides arbitrary user data, this type also contains SDK-provided fields used by the\n product (see <https://develop.sentry.dev/sdk/performance/span-data-conventions/>).",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "ai.completion_tokens.used": {
                                "description": " The output tokens used by an LLM call (the ones the LLM actually generated)",
                                "default": None,
                            },
                            "ai.input_messages": {
                                "description": " The input messages to an AI model call",
                                "default": None,
                            },
                            "ai.model_id": {
                                "description": " The Model ID of an AI pipeline, e.g., gpt-4",
                                "default": None,
                            },
                            "ai.pipeline.name": {
                                "description": " The 'name' field of the ancestor span with op ai.pipeline.*",
                                "default": None,
                            },
                            "ai.prompt_tokens.used": {
                                "description": " The input tokens used by an LLM call (usually cheaper than output tokens)",
                                "default": None,
                            },
                            "ai.responses": {
                                "description": " The responses to an AI model call",
                                "default": None,
                            },
                            "ai.total_tokens.used": {
                                "description": " The total tokens that were used by an LLM call",
                                "default": None,
                            },
                            "app_start_type": {
                                "description": ' Mobile app start variant.\n\n Can be either "cold" or "warm".',
                                "default": None,
                            },
                            "browser.name": {
                                "description": " The client's browser name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "cache.hit": {
                                "description": " Whether cache was hit or miss on a read operation.",
                                "default": None,
                            },
                            "cache.item_size": {
                                "description": " The size of the cache item.",
                                "default": None,
                            },
                            "cache.key": {
                                "description": " The name of the cache key.",
                                "default": None,
                            },
                            "client.address": {
                                "description": " The client's IP address.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "code.filepath": {
                                "description": " The source code file name that identifies the code unit as uniquely as possible.",
                                "default": None,
                            },
                            "code.function": {
                                "description": " The method or function name, or equivalent.\n\n Usually rightmost part of the code unit's name.",
                                "default": None,
                            },
                            "code.lineno": {
                                "description": " The line number in `code.filepath` best representing the operation.",
                                "default": None,
                            },
                            "code.namespace": {
                                "description": ' The "namespace" within which `code.function` is defined.\n\n Usually the qualified class or module name, such that\n `code.namespace + some separator + code.function`\n form a unique identifier for the code unit.',
                                "default": None,
                            },
                            "db.operation": {
                                "description": " The name of the operation being executed.\n\n E.g. the MongoDB command name such as findAndModify, or the SQL keyword.\n Based on [OpenTelemetry's call level db attributes](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#call-level-attributes).",
                                "default": None,
                            },
                            "db.system": {
                                "description": " An identifier for the database management system (DBMS) product being used.\n\n See [OpenTelemetry docs for a list of well-known identifiers](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/database.md#notes-and-well-known-identifiers-for-dbsystem).",
                                "default": None,
                            },
                            "frames.delay": {"default": None},
                            "http.decoded_response_content_length": {
                                "description": " The decoded body size of the response (in bytes).",
                                "default": None,
                            },
                            "http.request_method": {
                                "description": " The HTTP method used.",
                                "default": None,
                            },
                            "http.response.status_code": {
                                "description": " The status HTTP response.",
                                "default": None,
                            },
                            "http.response_content_length": {
                                "description": " The encoded body size of the response (in bytes).",
                                "default": None,
                            },
                            "http.response_transfer_size": {
                                "description": " The transfer size of the response (in bytes).",
                                "default": None,
                            },
                            "messaging.destination.name": {
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "messaging.message.body.size": {
                                "description": " Message Body Size",
                                "default": None,
                            },
                            "messaging.message.id": {
                                "description": " Message ID",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "messaging.message.receive.latency": {
                                "description": " Message Receive Latency",
                                "default": None,
                            },
                            "messaging.message.retry.count": {
                                "description": " Message Retry Count",
                                "default": None,
                            },
                            "previousRoute": {
                                "description": " The previous route in the application\n\n Set by React Native SDK.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The route in the application, set by React Native SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " The name of the route.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "params": {
                                                        "description": " Parameters assigned to this route.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "resource.render_blocking_status": {
                                "description": " The render blocking status of the resource.",
                                "default": None,
                            },
                            "route": {
                                "description": " The current route in the application.\n\n Set by React Native SDK.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " The route in the application, set by React Native SDK.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " The name of the route.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "params": {
                                                        "description": " Parameters assigned to this route.",
                                                        "default": None,
                                                        "type": ["object", "null"],
                                                        "additionalProperties": True,
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "sentry.environment": {
                                "description": " The sentry environment.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry.frames.frozen": {
                                "description": " Frozen Frames",
                                "default": None,
                            },
                            "sentry.frames.slow": {
                                "description": " Slow Frames",
                                "default": None,
                            },
                            "sentry.frames.total": {
                                "description": " Total Frames",
                                "default": None,
                            },
                            "sentry.release": {
                                "description": " The release version of the project.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry.replay.id": {
                                "description": " Replay ID",
                                "default": None,
                            },
                            "sentry.sdk.name": {
                                "description": " The sentry SDK (see [`crate::protocol::ClientSdkInfo`]).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry.sdk.version": {
                                "description": " The sentry SDK version (see [`crate::protocol::ClientSdkInfo`]).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "sentry.segment.name": {
                                "description": " Name of the segment that this span belongs to (see `segment_id`).\n\n This corresponds to the transaction name in the transaction-based model.\n\n For INP spans, this is the route name where the interaction occurred.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "server.address": {
                                "description": " Name of the web server host.",
                                "default": None,
                            },
                            "thread.id": {
                                "description": " ID of thread from where the span originated.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Represents a thread id.",
                                        "anyOf": [
                                            {
                                                "type": "integer",
                                                "format": "uint64",
                                                "minimum": 0.0,
                                            },
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "thread.name": {
                                "description": " Label identifying a thread from where the span originated.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "ui.component_name": {
                                "description": " Name of the UI component (e.g. React).",
                                "default": None,
                            },
                            "url.full": {
                                "description": " Absolute URL of a network resource.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "url.scheme": {
                                "description": ' The URL scheme, e.g. `"https"`.',
                                "default": None,
                            },
                            "user": {"description": " User Display", "default": None},
                            "user_agent.original": {
                                "description": " Value of the HTTP User-Agent header sent by the client.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_route(data, custom_formats={}, name_prefix=None):
    data_any_of_count155 = 0
    if not data_any_of_count155:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " The name of the route.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "params": {
                                "description": " Parameters assigned to this route.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " The name of the route.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "params" in data_keys:
                    data_keys.remove("params")
                    data__params = data["params"]
                    if not isinstance(data__params, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".params must be object or null",
                            value=data__params,
                            name="" + (name_prefix or "data") + ".params",
                            definition={
                                "description": " Parameters assigned to this route.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            rule="type",
                        )
                    data__params_is_dict = isinstance(data__params, dict)
                    if data__params_is_dict:
                        data__params_keys = set(data__params.keys())
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "name": {
                                    "description": " The name of the route.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "params": {
                                    "description": " Parameters assigned to this route.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count155 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count155:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " The route in the application, set by React Native SDK.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " The name of the route.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "params": {
                                "description": " Parameters assigned to this route.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_gpucontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count156 = 0
    if not data_any_of_count156:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "api_type": {
                                "description": ' The device low-level API type.\n\n Examples: `"Apple Metal"` or `"Direct3D11"`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "graphics_shader_level": {
                                "description": ' Approximate "shader capability" level of the graphics device.\n\n For Example: Shader Model 2.0, OpenGL ES 3.0, Metal / OpenGL ES 3.1, 27 (unknown)',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "id": {
                                "description": " The PCI identifier of the graphics device.",
                                "default": None,
                            },
                            "max_texture_size": {
                                "description": " Largest size of a texture that is supported by the graphics hardware.\n\n For Example: 16384",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "memory_size": {
                                "description": " The total GPU memory available in Megabytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "multi_threaded_rendering": {
                                "description": " Whether the GPU has multi-threaded rendering or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "name": {
                                "description": " The name of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "npot_support": {
                                "description": " The Non-Power-Of-Two support.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "supports_compute_shaders": {
                                "description": " Whether compute shaders are available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_draw_call_instancing": {
                                "description": " Whether GPU draw call instancing is supported.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_geometry_shaders": {
                                "description": " Whether geometry shaders are available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_ray_tracing": {
                                "description": " Whether ray tracing is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "vendor_id": {
                                "description": " The PCI vendor identifier of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "vendor_name": {
                                "description": " The vendor name as reported by the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " The Version of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "api_type" in data_keys:
                    data_keys.remove("api_type")
                    data__apitype = data["api_type"]
                    if not isinstance(data__apitype, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".api_type must be string or null",
                            value=data__apitype,
                            name="" + (name_prefix or "data") + ".api_type",
                            definition={
                                "description": ' The device low-level API type.\n\n Examples: `"Apple Metal"` or `"Direct3D11"`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "graphics_shader_level" in data_keys:
                    data_keys.remove("graphics_shader_level")
                    data__graphicsshaderlevel = data["graphics_shader_level"]
                    if not isinstance(data__graphicsshaderlevel, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".graphics_shader_level must be string or null",
                            value=data__graphicsshaderlevel,
                            name=""
                            + (name_prefix or "data")
                            + ".graphics_shader_level",
                            definition={
                                "description": ' Approximate "shader capability" level of the graphics device.\n\n For Example: Shader Model 2.0, OpenGL ES 3.0, Metal / OpenGL ES 3.1, 27 (unknown)',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "id" in data_keys:
                    data_keys.remove("id")
                    data__id = data["id"]
                if "max_texture_size" in data_keys:
                    data_keys.remove("max_texture_size")
                    data__maxtexturesize = data["max_texture_size"]
                    if (
                        not isinstance(data__maxtexturesize, (int, NoneType))
                        and not (
                            isinstance(data__maxtexturesize, float)
                            and data__maxtexturesize.is_integer()
                        )
                        or isinstance(data__maxtexturesize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".max_texture_size must be integer or null",
                            value=data__maxtexturesize,
                            name="" + (name_prefix or "data") + ".max_texture_size",
                            definition={
                                "description": " Largest size of a texture that is supported by the graphics hardware.\n\n For Example: 16384",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__maxtexturesize, (int, float, Decimal)):
                        if data__maxtexturesize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".max_texture_size must be bigger than or equal to 0.0",
                                value=data__maxtexturesize,
                                name="" + (name_prefix or "data") + ".max_texture_size",
                                definition={
                                    "description": " Largest size of a texture that is supported by the graphics hardware.\n\n For Example: 16384",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "memory_size" in data_keys:
                    data_keys.remove("memory_size")
                    data__memorysize = data["memory_size"]
                    if (
                        not isinstance(data__memorysize, (int, NoneType))
                        and not (
                            isinstance(data__memorysize, float)
                            and data__memorysize.is_integer()
                        )
                        or isinstance(data__memorysize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".memory_size must be integer or null",
                            value=data__memorysize,
                            name="" + (name_prefix or "data") + ".memory_size",
                            definition={
                                "description": " The total GPU memory available in Megabytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__memorysize, (int, float, Decimal)):
                        if data__memorysize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".memory_size must be bigger than or equal to 0.0",
                                value=data__memorysize,
                                name="" + (name_prefix or "data") + ".memory_size",
                                definition={
                                    "description": " The total GPU memory available in Megabytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "multi_threaded_rendering" in data_keys:
                    data_keys.remove("multi_threaded_rendering")
                    data__multithreadedrendering = data["multi_threaded_rendering"]
                    if not isinstance(data__multithreadedrendering, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".multi_threaded_rendering must be boolean or null",
                            value=data__multithreadedrendering,
                            name=""
                            + (name_prefix or "data")
                            + ".multi_threaded_rendering",
                            definition={
                                "description": " Whether the GPU has multi-threaded rendering or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " The name of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "npot_support" in data_keys:
                    data_keys.remove("npot_support")
                    data__npotsupport = data["npot_support"]
                    if not isinstance(data__npotsupport, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".npot_support must be string or null",
                            value=data__npotsupport,
                            name="" + (name_prefix or "data") + ".npot_support",
                            definition={
                                "description": " The Non-Power-Of-Two support.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "supports_compute_shaders" in data_keys:
                    data_keys.remove("supports_compute_shaders")
                    data__supportscomputeshaders = data["supports_compute_shaders"]
                    if not isinstance(data__supportscomputeshaders, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_compute_shaders must be boolean or null",
                            value=data__supportscomputeshaders,
                            name=""
                            + (name_prefix or "data")
                            + ".supports_compute_shaders",
                            definition={
                                "description": " Whether compute shaders are available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "supports_draw_call_instancing" in data_keys:
                    data_keys.remove("supports_draw_call_instancing")
                    data__supportsdrawcallinstancing = data[
                        "supports_draw_call_instancing"
                    ]
                    if not isinstance(
                        data__supportsdrawcallinstancing, (bool, NoneType)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_draw_call_instancing must be boolean or null",
                            value=data__supportsdrawcallinstancing,
                            name=""
                            + (name_prefix or "data")
                            + ".supports_draw_call_instancing",
                            definition={
                                "description": " Whether GPU draw call instancing is supported.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "supports_geometry_shaders" in data_keys:
                    data_keys.remove("supports_geometry_shaders")
                    data__supportsgeometryshaders = data["supports_geometry_shaders"]
                    if not isinstance(data__supportsgeometryshaders, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_geometry_shaders must be boolean or null",
                            value=data__supportsgeometryshaders,
                            name=""
                            + (name_prefix or "data")
                            + ".supports_geometry_shaders",
                            definition={
                                "description": " Whether geometry shaders are available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "supports_ray_tracing" in data_keys:
                    data_keys.remove("supports_ray_tracing")
                    data__supportsraytracing = data["supports_ray_tracing"]
                    if not isinstance(data__supportsraytracing, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_ray_tracing must be boolean or null",
                            value=data__supportsraytracing,
                            name="" + (name_prefix or "data") + ".supports_ray_tracing",
                            definition={
                                "description": " Whether ray tracing is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "vendor_id" in data_keys:
                    data_keys.remove("vendor_id")
                    data__vendorid = data["vendor_id"]
                    if not isinstance(data__vendorid, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".vendor_id must be string or null",
                            value=data__vendorid,
                            name="" + (name_prefix or "data") + ".vendor_id",
                            definition={
                                "description": " The PCI vendor identifier of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "vendor_name" in data_keys:
                    data_keys.remove("vendor_name")
                    data__vendorname = data["vendor_name"]
                    if not isinstance(data__vendorname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".vendor_name must be string or null",
                            value=data__vendorname,
                            name="" + (name_prefix or "data") + ".vendor_name",
                            definition={
                                "description": " The vendor name as reported by the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "version" in data_keys:
                    data_keys.remove("version")
                    data__version = data["version"]
                    if not isinstance(data__version, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version must be string or null",
                            value=data__version,
                            name="" + (name_prefix or "data") + ".version",
                            definition={
                                "description": " The Version of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "api_type": {
                                    "description": ' The device low-level API type.\n\n Examples: `"Apple Metal"` or `"Direct3D11"`',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "graphics_shader_level": {
                                    "description": ' Approximate "shader capability" level of the graphics device.\n\n For Example: Shader Model 2.0, OpenGL ES 3.0, Metal / OpenGL ES 3.1, 27 (unknown)',
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "id": {
                                    "description": " The PCI identifier of the graphics device.",
                                    "default": None,
                                },
                                "max_texture_size": {
                                    "description": " Largest size of a texture that is supported by the graphics hardware.\n\n For Example: 16384",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "memory_size": {
                                    "description": " The total GPU memory available in Megabytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "multi_threaded_rendering": {
                                    "description": " Whether the GPU has multi-threaded rendering or not.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "name": {
                                    "description": " The name of the graphics device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "npot_support": {
                                    "description": " The Non-Power-Of-Two support.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "supports_compute_shaders": {
                                    "description": " Whether compute shaders are available on the device.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "supports_draw_call_instancing": {
                                    "description": " Whether GPU draw call instancing is supported.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "supports_geometry_shaders": {
                                    "description": " Whether geometry shaders are available on the device.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "supports_ray_tracing": {
                                    "description": " Whether ray tracing is available on the device.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "vendor_id": {
                                    "description": " The PCI vendor identifier of the graphics device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "vendor_name": {
                                    "description": " The vendor name as reported by the graphics device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "version": {
                                    "description": " The Version of the graphics device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count156 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count156:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' GPU information.\n\n Example:\n\n ```json\n "gpu": {\n   "name": "AMD Radeon Pro 560",\n   "vendor_name": "Apple",\n   "memory_size": 4096,\n   "api_type": "Metal",\n   "multi_threaded_rendering": true,\n   "version": "Metal",\n   "npot_support": "Full"\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "api_type": {
                                "description": ' The device low-level API type.\n\n Examples: `"Apple Metal"` or `"Direct3D11"`',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "graphics_shader_level": {
                                "description": ' Approximate "shader capability" level of the graphics device.\n\n For Example: Shader Model 2.0, OpenGL ES 3.0, Metal / OpenGL ES 3.1, 27 (unknown)',
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "id": {
                                "description": " The PCI identifier of the graphics device.",
                                "default": None,
                            },
                            "max_texture_size": {
                                "description": " Largest size of a texture that is supported by the graphics hardware.\n\n For Example: 16384",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "memory_size": {
                                "description": " The total GPU memory available in Megabytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "multi_threaded_rendering": {
                                "description": " Whether the GPU has multi-threaded rendering or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "name": {
                                "description": " The name of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "npot_support": {
                                "description": " The Non-Power-Of-Two support.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "supports_compute_shaders": {
                                "description": " Whether compute shaders are available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_draw_call_instancing": {
                                "description": " Whether GPU draw call instancing is supported.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_geometry_shaders": {
                                "description": " Whether geometry shaders are available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_ray_tracing": {
                                "description": " Whether ray tracing is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "vendor_id": {
                                "description": " The PCI vendor identifier of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "vendor_name": {
                                "description": " The vendor name as reported by the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " The Version of the graphics device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_browsercontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count157 = 0
    if not data_any_of_count157:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " Display name of the browser application.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " Version string of the browser.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Display name of the browser application.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "version" in data_keys:
                    data_keys.remove("version")
                    data__version = data["version"]
                    if not isinstance(data__version, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version must be string or null",
                            value=data__version,
                            name="" + (name_prefix or "data") + ".version",
                            definition={
                                "description": " Version string of the browser.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "name": {
                                    "description": " Display name of the browser application.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "version": {
                                    "description": " Version string of the browser.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count157 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count157:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Web browser information.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " Display name of the browser application.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " Version string of the browser.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_appcontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count158 = 0
    if not data_any_of_count158:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "app_build": {
                                "description": " Internal build ID as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "app_identifier": {
                                "description": " Version-independent application identifier, often a dotted bundle ID.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "app_memory": {
                                "description": " Amount of memory used by the application in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "app_name": {
                                "description": " Application name as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "app_start_time": {
                                "description": " Start time of the app.\n\n Formatted UTC timestamp when the user started the application.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "app_version": {
                                "description": " Application version as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "build_type": {
                                "description": " String identifying the kind of build. For example, `testflight`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "device_app_hash": {
                                "description": " Application-specific device identifier.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "in_foreground": {
                                "description": " A flag indicating whether the app is in foreground or not. An app is in foreground when it's visible to the user.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "view_names": {
                                "description": " The names of the currently visible views.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "app_build" in data_keys:
                    data_keys.remove("app_build")
                    data__appbuild = data["app_build"]
                    if not isinstance(data__appbuild, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".app_build must be string or null",
                            value=data__appbuild,
                            name="" + (name_prefix or "data") + ".app_build",
                            definition={
                                "description": " Internal build ID as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "app_identifier" in data_keys:
                    data_keys.remove("app_identifier")
                    data__appidentifier = data["app_identifier"]
                    if not isinstance(data__appidentifier, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".app_identifier must be string or null",
                            value=data__appidentifier,
                            name="" + (name_prefix or "data") + ".app_identifier",
                            definition={
                                "description": " Version-independent application identifier, often a dotted bundle ID.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "app_memory" in data_keys:
                    data_keys.remove("app_memory")
                    data__appmemory = data["app_memory"]
                    if (
                        not isinstance(data__appmemory, (int, NoneType))
                        and not (
                            isinstance(data__appmemory, float)
                            and data__appmemory.is_integer()
                        )
                        or isinstance(data__appmemory, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".app_memory must be integer or null",
                            value=data__appmemory,
                            name="" + (name_prefix or "data") + ".app_memory",
                            definition={
                                "description": " Amount of memory used by the application in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__appmemory, (int, float, Decimal)):
                        if data__appmemory < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".app_memory must be bigger than or equal to 0.0",
                                value=data__appmemory,
                                name="" + (name_prefix or "data") + ".app_memory",
                                definition={
                                    "description": " Amount of memory used by the application in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "app_name" in data_keys:
                    data_keys.remove("app_name")
                    data__appname = data["app_name"]
                    if not isinstance(data__appname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".app_name must be string or null",
                            value=data__appname,
                            name="" + (name_prefix or "data") + ".app_name",
                            definition={
                                "description": " Application name as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "app_start_time" in data_keys:
                    data_keys.remove("app_start_time")
                    data__appstarttime = data["app_start_time"]
                    if not isinstance(data__appstarttime, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".app_start_time must be string or null",
                            value=data__appstarttime,
                            name="" + (name_prefix or "data") + ".app_start_time",
                            definition={
                                "description": " Start time of the app.\n\n Formatted UTC timestamp when the user started the application.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "app_version" in data_keys:
                    data_keys.remove("app_version")
                    data__appversion = data["app_version"]
                    if not isinstance(data__appversion, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".app_version must be string or null",
                            value=data__appversion,
                            name="" + (name_prefix or "data") + ".app_version",
                            definition={
                                "description": " Application version as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "build_type" in data_keys:
                    data_keys.remove("build_type")
                    data__buildtype = data["build_type"]
                    if not isinstance(data__buildtype, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".build_type must be string or null",
                            value=data__buildtype,
                            name="" + (name_prefix or "data") + ".build_type",
                            definition={
                                "description": " String identifying the kind of build. For example, `testflight`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "device_app_hash" in data_keys:
                    data_keys.remove("device_app_hash")
                    data__deviceapphash = data["device_app_hash"]
                    if not isinstance(data__deviceapphash, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".device_app_hash must be string or null",
                            value=data__deviceapphash,
                            name="" + (name_prefix or "data") + ".device_app_hash",
                            definition={
                                "description": " Application-specific device identifier.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "in_foreground" in data_keys:
                    data_keys.remove("in_foreground")
                    data__inforeground = data["in_foreground"]
                    if not isinstance(data__inforeground, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".in_foreground must be boolean or null",
                            value=data__inforeground,
                            name="" + (name_prefix or "data") + ".in_foreground",
                            definition={
                                "description": " A flag indicating whether the app is in foreground or not. An app is in foreground when it's visible to the user.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "view_names" in data_keys:
                    data_keys.remove("view_names")
                    data__viewnames = data["view_names"]
                    if not isinstance(data__viewnames, (list, tuple, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".view_names must be array or null",
                            value=data__viewnames,
                            name="" + (name_prefix or "data") + ".view_names",
                            definition={
                                "description": " The names of the currently visible views.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                            rule="type",
                        )
                    data__viewnames_is_list = isinstance(data__viewnames, (list, tuple))
                    if data__viewnames_is_list:
                        data__viewnames_len = len(data__viewnames)
                        for data__viewnames_x, data__viewnames_item in enumerate(
                            data__viewnames
                        ):
                            if not isinstance(data__viewnames_item, (str, NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".view_names[{data__viewnames_x}]".format(
                                        **locals()
                                    )
                                    + " must be string or null",
                                    value=data__viewnames_item,
                                    name=""
                                    + (name_prefix or "data")
                                    + ".view_names[{data__viewnames_x}]".format(
                                        **locals()
                                    )
                                    + "",
                                    definition={"type": ["string", "null"]},
                                    rule="type",
                                )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "app_build": {
                                    "description": " Internal build ID as it appears on the platform.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "app_identifier": {
                                    "description": " Version-independent application identifier, often a dotted bundle ID.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "app_memory": {
                                    "description": " Amount of memory used by the application in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "app_name": {
                                    "description": " Application name as it appears on the platform.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "app_start_time": {
                                    "description": " Start time of the app.\n\n Formatted UTC timestamp when the user started the application.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "app_version": {
                                    "description": " Application version as it appears on the platform.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "build_type": {
                                    "description": " String identifying the kind of build. For example, `testflight`.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "device_app_hash": {
                                    "description": " Application-specific device identifier.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "in_foreground": {
                                    "description": " A flag indicating whether the app is in foreground or not. An app is in foreground when it's visible to the user.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "view_names": {
                                    "description": " The names of the currently visible views.",
                                    "default": None,
                                    "type": ["array", "null"],
                                    "items": {"type": ["string", "null"]},
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count158 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count158:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Application information.\n\n App context describes the application. As opposed to the runtime, this is the actual\n application that was running and carries metadata about the current session.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "app_build": {
                                "description": " Internal build ID as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "app_identifier": {
                                "description": " Version-independent application identifier, often a dotted bundle ID.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "app_memory": {
                                "description": " Amount of memory used by the application in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "app_name": {
                                "description": " Application name as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "app_start_time": {
                                "description": " Start time of the app.\n\n Formatted UTC timestamp when the user started the application.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "app_version": {
                                "description": " Application version as it appears on the platform.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "build_type": {
                                "description": " String identifying the kind of build. For example, `testflight`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "device_app_hash": {
                                "description": " Application-specific device identifier.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "in_foreground": {
                                "description": " A flag indicating whether the app is in foreground or not. An app is in foreground when it's visible to the user.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "view_names": {
                                "description": " The names of the currently visible views.",
                                "default": None,
                                "type": ["array", "null"],
                                "items": {"type": ["string", "null"]},
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_runtimecontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count159 = 0
    if not data_any_of_count159:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "build": {
                                "description": " Application build string, if it is separate from the version.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "name": {
                                "description": " Runtime name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "raw_description": {
                                "description": " Unprocessed runtime info.\n\n An unprocessed description string obtained by the runtime. For some well-known runtimes,\n Sentry will attempt to parse `name` and `version` from this string, if they are not\n explicitly given.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " Runtime version string.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "build" in data_keys:
                    data_keys.remove("build")
                    data__build = data["build"]
                    if not isinstance(data__build, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".build must be string or null",
                            value=data__build,
                            name="" + (name_prefix or "data") + ".build",
                            definition={
                                "description": " Application build string, if it is separate from the version.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Runtime name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "raw_description" in data_keys:
                    data_keys.remove("raw_description")
                    data__rawdescription = data["raw_description"]
                    if not isinstance(data__rawdescription, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".raw_description must be string or null",
                            value=data__rawdescription,
                            name="" + (name_prefix or "data") + ".raw_description",
                            definition={
                                "description": " Unprocessed runtime info.\n\n An unprocessed description string obtained by the runtime. For some well-known runtimes,\n Sentry will attempt to parse `name` and `version` from this string, if they are not\n explicitly given.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "version" in data_keys:
                    data_keys.remove("version")
                    data__version = data["version"]
                    if not isinstance(data__version, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version must be string or null",
                            value=data__version,
                            name="" + (name_prefix or "data") + ".version",
                            definition={
                                "description": " Runtime version string.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "build": {
                                    "description": " Application build string, if it is separate from the version.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "name": {
                                    "description": " Runtime name.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "raw_description": {
                                    "description": " Unprocessed runtime info.\n\n An unprocessed description string obtained by the runtime. For some well-known runtimes,\n Sentry will attempt to parse `name` and `version` from this string, if they are not\n explicitly given.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "version": {
                                    "description": " Runtime version string.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count159 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count159:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Runtime information.\n\n Runtime context describes a runtime in more detail. Typically, this context is present in\n `contexts` multiple times if multiple runtimes are involved (for instance, if you have a\n JavaScript application running on top of JVM).",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "build": {
                                "description": " Application build string, if it is separate from the version.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "name": {
                                "description": " Runtime name.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "raw_description": {
                                "description": " Unprocessed runtime info.\n\n An unprocessed description string obtained by the runtime. For some well-known runtimes,\n Sentry will attempt to parse `name` and `version` from this string, if they are not\n explicitly given.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " Runtime version string.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_oscontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count160 = 0
    if not data_any_of_count160:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "build": {
                                "description": " Internal build number of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "distribution": {
                                "description": " Meta-data for the Linux Distribution.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Metadata for the Linux Distribution.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " An index-able name that is stable for each distribution.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "pretty_name": {
                                                        "description": " A full rendering of name + version + release name (not available in all distributions).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "version": {
                                                        "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "kernel_version": {
                                "description": " Current kernel version.\n\n This is typically the entire output of the `uname` syscall.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "name": {
                                "description": " Name of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "raw_description": {
                                "description": " Unprocessed operating system info.\n\n An unprocessed description string obtained by the operating system. For some well-known\n runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are\n not explicitly given.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "rooted": {
                                "description": " Indicator if the OS is rooted (mobile mostly).",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "version": {
                                "description": " Version of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "build" in data_keys:
                    data_keys.remove("build")
                    data__build = data["build"]
                    if not isinstance(data__build, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".build must be string or null",
                            value=data__build,
                            name="" + (name_prefix or "data") + ".build",
                            definition={
                                "description": " Internal build number of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "distribution" in data_keys:
                    data_keys.remove("distribution")
                    data__distribution = data["distribution"]
                    data__distribution_any_of_count161 = 0
                    if not data__distribution_any_of_count161:
                        try:
                            validate___definitions_linuxdistribution(
                                data__distribution,
                                custom_formats,
                                (name_prefix or "data") + ".distribution",
                            )
                            data__distribution_any_of_count161 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__distribution_any_of_count161:
                        try:
                            if not isinstance(data__distribution, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".distribution must be null",
                                    value=data__distribution,
                                    name="" + (name_prefix or "data") + ".distribution",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__distribution_any_of_count161 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__distribution_any_of_count161:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".distribution cannot be validated by any definition",
                            value=data__distribution,
                            name="" + (name_prefix or "data") + ".distribution",
                            definition={
                                "description": " Meta-data for the Linux Distribution.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Metadata for the Linux Distribution.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " An index-able name that is stable for each distribution.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "pretty_name": {
                                                        "description": " A full rendering of name + version + release name (not available in all distributions).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "version": {
                                                        "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "kernel_version" in data_keys:
                    data_keys.remove("kernel_version")
                    data__kernelversion = data["kernel_version"]
                    if not isinstance(data__kernelversion, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".kernel_version must be string or null",
                            value=data__kernelversion,
                            name="" + (name_prefix or "data") + ".kernel_version",
                            definition={
                                "description": " Current kernel version.\n\n This is typically the entire output of the `uname` syscall.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Name of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "raw_description" in data_keys:
                    data_keys.remove("raw_description")
                    data__rawdescription = data["raw_description"]
                    if not isinstance(data__rawdescription, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".raw_description must be string or null",
                            value=data__rawdescription,
                            name="" + (name_prefix or "data") + ".raw_description",
                            definition={
                                "description": " Unprocessed operating system info.\n\n An unprocessed description string obtained by the operating system. For some well-known\n runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are\n not explicitly given.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "rooted" in data_keys:
                    data_keys.remove("rooted")
                    data__rooted = data["rooted"]
                    if not isinstance(data__rooted, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".rooted must be boolean or null",
                            value=data__rooted,
                            name="" + (name_prefix or "data") + ".rooted",
                            definition={
                                "description": " Indicator if the OS is rooted (mobile mostly).",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "version" in data_keys:
                    data_keys.remove("version")
                    data__version = data["version"]
                    if not isinstance(data__version, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version must be string or null",
                            value=data__version,
                            name="" + (name_prefix or "data") + ".version",
                            definition={
                                "description": " Version of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "build": {
                                    "description": " Internal build number of the operating system.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "distribution": {
                                    "description": " Meta-data for the Linux Distribution.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Metadata for the Linux Distribution.",
                                            "anyOf": [
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "name": {
                                                            "description": " An index-able name that is stable for each distribution.",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "pretty_name": {
                                                            "description": " A full rendering of name + version + release name (not available in all distributions).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                        "version": {
                                                            "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                                            "default": None,
                                                            "type": ["string", "null"],
                                                        },
                                                    },
                                                    "additionalProperties": False,
                                                }
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "kernel_version": {
                                    "description": " Current kernel version.\n\n This is typically the entire output of the `uname` syscall.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "name": {
                                    "description": " Name of the operating system.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "raw_description": {
                                    "description": " Unprocessed operating system info.\n\n An unprocessed description string obtained by the operating system. For some well-known\n runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are\n not explicitly given.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "rooted": {
                                    "description": " Indicator if the OS is rooted (mobile mostly).",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "version": {
                                    "description": " Version of the operating system.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count160 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count160:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Operating system information.\n\n OS context describes the operating system on which the event was created. In web contexts, this\n is the operating system of the browser (generally pulled from the User-Agent string).",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "build": {
                                "description": " Internal build number of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "distribution": {
                                "description": " Meta-data for the Linux Distribution.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Metadata for the Linux Distribution.",
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "description": " An index-able name that is stable for each distribution.",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "pretty_name": {
                                                        "description": " A full rendering of name + version + release name (not available in all distributions).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                    "version": {
                                                        "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                                        "default": None,
                                                        "type": ["string", "null"],
                                                    },
                                                },
                                                "additionalProperties": False,
                                            }
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "kernel_version": {
                                "description": " Current kernel version.\n\n This is typically the entire output of the `uname` syscall.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "name": {
                                "description": " Name of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "raw_description": {
                                "description": " Unprocessed operating system info.\n\n An unprocessed description string obtained by the operating system. For some well-known\n runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are\n not explicitly given.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "rooted": {
                                "description": " Indicator if the OS is rooted (mobile mostly).",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "version": {
                                "description": " Version of the operating system.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_linuxdistribution(data, custom_formats={}, name_prefix=None):
    data_any_of_count162 = 0
    if not data_any_of_count162:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " An index-able name that is stable for each distribution.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "pretty_name": {
                                "description": " A full rendering of name + version + release name (not available in all distributions).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " An index-able name that is stable for each distribution.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "pretty_name" in data_keys:
                    data_keys.remove("pretty_name")
                    data__prettyname = data["pretty_name"]
                    if not isinstance(data__prettyname, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".pretty_name must be string or null",
                            value=data__prettyname,
                            name="" + (name_prefix or "data") + ".pretty_name",
                            definition={
                                "description": " A full rendering of name + version + release name (not available in all distributions).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "version" in data_keys:
                    data_keys.remove("version")
                    data__version = data["version"]
                    if not isinstance(data__version, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".version must be string or null",
                            value=data__version,
                            name="" + (name_prefix or "data") + ".version",
                            definition={
                                "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "name": {
                                    "description": " An index-able name that is stable for each distribution.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "pretty_name": {
                                    "description": " A full rendering of name + version + release name (not available in all distributions).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "version": {
                                    "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count162 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count162:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Metadata for the Linux Distribution.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "name": {
                                "description": " An index-able name that is stable for each distribution.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "pretty_name": {
                                "description": " A full rendering of name + version + release name (not available in all distributions).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "version": {
                                "description": " The version of the distribution (missing in distributions with solely rolling release).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_devicecontext(data, custom_formats={}, name_prefix=None):
    data_any_of_count163 = 0
    if not data_any_of_count163:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "arch": {
                                "description": " Native cpu architecture of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "battery_level": {
                                "description": " Current battery level in %.\n\n If the device has a battery, this can be a floating point value defining the battery level\n (in the range 0-100).",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "battery_status": {
                                "description": " Status of the device's battery.\n\n For example, `Unknown`, `Charging`, `Discharging`, `NotCharging`, `Full`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "boot_time": {
                                "description": " Indicator when the device was booted.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "brand": {
                                "description": " Brand of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "charging": {
                                "description": " Whether the device was charging or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "cpu_description": {
                                "description": " CPU description.\n\n For example, Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "device_type": {
                                "description": " Kind of device the application is running on.\n\n For example, `Unknown`, `Handheld`, `Console`, `Desktop`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "device_unique_identifier": {
                                "description": " Unique device identifier.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "external_free_storage": {
                                "description": " Free size of the attached external storage in bytes (eg: android SDK card).",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "external_storage_size": {
                                "description": " Total size of the attached external storage in bytes (eg: android SDK card).",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "family": {
                                "description": " Family of the device model.\n\n This is usually the common part of model names across generations. For instance, `iPhone`\n would be a reasonable family, so would be `Samsung Galaxy`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "free_memory": {
                                "description": " How much memory is still available in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "free_storage": {
                                "description": " How much storage is free in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "locale": {
                                "description": " ISO 639-1 code of the locale the device is set to.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "low_memory": {
                                "description": " Whether the device was low on memory.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "manufacturer": {
                                "description": " Manufacturer of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "memory_size": {
                                "description": " Total memory available in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "model": {
                                "description": " Device model.\n\n This, for example, can be `Samsung Galaxy S3`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "model_id": {
                                "description": " Device model (internal identifier).\n\n An internal hardware revision to identify the device exactly.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "name": {
                                "description": " Name of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "online": {
                                "description": " Whether the device was online or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "orientation": {
                                "description": " Current screen orientation.\n\n This can be a string `portrait` or `landscape` to define the orientation of a device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "processor_count": {
                                "description": ' Number of "logical processors".\n\n For example, 8.',
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "processor_frequency": {
                                "description": " Processor frequency in MHz.\n\n Note that the actual CPU frequency might vary depending on current load and\n power conditions, especially on low-powered devices like phones and laptops.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "screen_density": {
                                "description": " Device screen density.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "screen_dpi": {
                                "description": " Screen density as dots-per-inch.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "screen_height_pixels": {
                                "description": " Height of the screen in pixels.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "screen_resolution": {
                                "description": " Device screen resolution.\n\n (e.g.: 800x600, 3040x1444)",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "screen_width_pixels": {
                                "description": " Width of the screen in pixels.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "simulator": {
                                "description": " Simulator/prod indicator.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "storage_size": {
                                "description": " Total storage size of the device in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "supports_accelerometer": {
                                "description": " Whether the accelerometer is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_audio": {
                                "description": " Whether audio is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_gyroscope": {
                                "description": " Whether the gyroscope is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_location_service": {
                                "description": " Whether location support is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_vibration": {
                                "description": " Whether vibration is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "timezone": {
                                "description": " Timezone of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "usable_memory": {
                                "description": " How much memory is usable for the app in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "uuid": {
                                "description": " UUID of the device.",
                                "default": None,
                                "type": ["string", "null"],
                                "format": "uuid",
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "arch" in data_keys:
                    data_keys.remove("arch")
                    data__arch = data["arch"]
                    if not isinstance(data__arch, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".arch must be string or null",
                            value=data__arch,
                            name="" + (name_prefix or "data") + ".arch",
                            definition={
                                "description": " Native cpu architecture of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "battery_level" in data_keys:
                    data_keys.remove("battery_level")
                    data__batterylevel = data["battery_level"]
                    if not isinstance(
                        data__batterylevel, (int, float, Decimal, NoneType)
                    ) or isinstance(data__batterylevel, bool):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".battery_level must be number or null",
                            value=data__batterylevel,
                            name="" + (name_prefix or "data") + ".battery_level",
                            definition={
                                "description": " Current battery level in %.\n\n If the device has a battery, this can be a floating point value defining the battery level\n (in the range 0-100).",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            rule="type",
                        )
                if "battery_status" in data_keys:
                    data_keys.remove("battery_status")
                    data__batterystatus = data["battery_status"]
                    if not isinstance(data__batterystatus, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".battery_status must be string or null",
                            value=data__batterystatus,
                            name="" + (name_prefix or "data") + ".battery_status",
                            definition={
                                "description": " Status of the device's battery.\n\n For example, `Unknown`, `Charging`, `Discharging`, `NotCharging`, `Full`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "boot_time" in data_keys:
                    data_keys.remove("boot_time")
                    data__boottime = data["boot_time"]
                    if not isinstance(data__boottime, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".boot_time must be string or null",
                            value=data__boottime,
                            name="" + (name_prefix or "data") + ".boot_time",
                            definition={
                                "description": " Indicator when the device was booted.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "brand" in data_keys:
                    data_keys.remove("brand")
                    data__brand = data["brand"]
                    if not isinstance(data__brand, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".brand must be string or null",
                            value=data__brand,
                            name="" + (name_prefix or "data") + ".brand",
                            definition={
                                "description": " Brand of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "charging" in data_keys:
                    data_keys.remove("charging")
                    data__charging = data["charging"]
                    if not isinstance(data__charging, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".charging must be boolean or null",
                            value=data__charging,
                            name="" + (name_prefix or "data") + ".charging",
                            definition={
                                "description": " Whether the device was charging or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "cpu_description" in data_keys:
                    data_keys.remove("cpu_description")
                    data__cpudescription = data["cpu_description"]
                    if not isinstance(data__cpudescription, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".cpu_description must be string or null",
                            value=data__cpudescription,
                            name="" + (name_prefix or "data") + ".cpu_description",
                            definition={
                                "description": " CPU description.\n\n For example, Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "device_type" in data_keys:
                    data_keys.remove("device_type")
                    data__devicetype = data["device_type"]
                    if not isinstance(data__devicetype, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".device_type must be string or null",
                            value=data__devicetype,
                            name="" + (name_prefix or "data") + ".device_type",
                            definition={
                                "description": " Kind of device the application is running on.\n\n For example, `Unknown`, `Handheld`, `Console`, `Desktop`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "device_unique_identifier" in data_keys:
                    data_keys.remove("device_unique_identifier")
                    data__deviceuniqueidentifier = data["device_unique_identifier"]
                    if not isinstance(data__deviceuniqueidentifier, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".device_unique_identifier must be string or null",
                            value=data__deviceuniqueidentifier,
                            name=""
                            + (name_prefix or "data")
                            + ".device_unique_identifier",
                            definition={
                                "description": " Unique device identifier.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "external_free_storage" in data_keys:
                    data_keys.remove("external_free_storage")
                    data__externalfreestorage = data["external_free_storage"]
                    if (
                        not isinstance(data__externalfreestorage, (int, NoneType))
                        and not (
                            isinstance(data__externalfreestorage, float)
                            and data__externalfreestorage.is_integer()
                        )
                        or isinstance(data__externalfreestorage, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".external_free_storage must be integer or null",
                            value=data__externalfreestorage,
                            name=""
                            + (name_prefix or "data")
                            + ".external_free_storage",
                            definition={
                                "description": " Free size of the attached external storage in bytes (eg: android SDK card).",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__externalfreestorage, (int, float, Decimal)):
                        if data__externalfreestorage < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".external_free_storage must be bigger than or equal to 0.0",
                                value=data__externalfreestorage,
                                name=""
                                + (name_prefix or "data")
                                + ".external_free_storage",
                                definition={
                                    "description": " Free size of the attached external storage in bytes (eg: android SDK card).",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "external_storage_size" in data_keys:
                    data_keys.remove("external_storage_size")
                    data__externalstoragesize = data["external_storage_size"]
                    if (
                        not isinstance(data__externalstoragesize, (int, NoneType))
                        and not (
                            isinstance(data__externalstoragesize, float)
                            and data__externalstoragesize.is_integer()
                        )
                        or isinstance(data__externalstoragesize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".external_storage_size must be integer or null",
                            value=data__externalstoragesize,
                            name=""
                            + (name_prefix or "data")
                            + ".external_storage_size",
                            definition={
                                "description": " Total size of the attached external storage in bytes (eg: android SDK card).",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__externalstoragesize, (int, float, Decimal)):
                        if data__externalstoragesize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".external_storage_size must be bigger than or equal to 0.0",
                                value=data__externalstoragesize,
                                name=""
                                + (name_prefix or "data")
                                + ".external_storage_size",
                                definition={
                                    "description": " Total size of the attached external storage in bytes (eg: android SDK card).",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "family" in data_keys:
                    data_keys.remove("family")
                    data__family = data["family"]
                    if not isinstance(data__family, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".family must be string or null",
                            value=data__family,
                            name="" + (name_prefix or "data") + ".family",
                            definition={
                                "description": " Family of the device model.\n\n This is usually the common part of model names across generations. For instance, `iPhone`\n would be a reasonable family, so would be `Samsung Galaxy`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "free_memory" in data_keys:
                    data_keys.remove("free_memory")
                    data__freememory = data["free_memory"]
                    if (
                        not isinstance(data__freememory, (int, NoneType))
                        and not (
                            isinstance(data__freememory, float)
                            and data__freememory.is_integer()
                        )
                        or isinstance(data__freememory, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".free_memory must be integer or null",
                            value=data__freememory,
                            name="" + (name_prefix or "data") + ".free_memory",
                            definition={
                                "description": " How much memory is still available in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__freememory, (int, float, Decimal)):
                        if data__freememory < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".free_memory must be bigger than or equal to 0.0",
                                value=data__freememory,
                                name="" + (name_prefix or "data") + ".free_memory",
                                definition={
                                    "description": " How much memory is still available in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "free_storage" in data_keys:
                    data_keys.remove("free_storage")
                    data__freestorage = data["free_storage"]
                    if (
                        not isinstance(data__freestorage, (int, NoneType))
                        and not (
                            isinstance(data__freestorage, float)
                            and data__freestorage.is_integer()
                        )
                        or isinstance(data__freestorage, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".free_storage must be integer or null",
                            value=data__freestorage,
                            name="" + (name_prefix or "data") + ".free_storage",
                            definition={
                                "description": " How much storage is free in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__freestorage, (int, float, Decimal)):
                        if data__freestorage < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".free_storage must be bigger than or equal to 0.0",
                                value=data__freestorage,
                                name="" + (name_prefix or "data") + ".free_storage",
                                definition={
                                    "description": " How much storage is free in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "locale" in data_keys:
                    data_keys.remove("locale")
                    data__locale = data["locale"]
                    if not isinstance(data__locale, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".locale must be string or null",
                            value=data__locale,
                            name="" + (name_prefix or "data") + ".locale",
                            definition={
                                "description": " ISO 639-1 code of the locale the device is set to.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "low_memory" in data_keys:
                    data_keys.remove("low_memory")
                    data__lowmemory = data["low_memory"]
                    if not isinstance(data__lowmemory, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".low_memory must be boolean or null",
                            value=data__lowmemory,
                            name="" + (name_prefix or "data") + ".low_memory",
                            definition={
                                "description": " Whether the device was low on memory.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "manufacturer" in data_keys:
                    data_keys.remove("manufacturer")
                    data__manufacturer = data["manufacturer"]
                    if not isinstance(data__manufacturer, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".manufacturer must be string or null",
                            value=data__manufacturer,
                            name="" + (name_prefix or "data") + ".manufacturer",
                            definition={
                                "description": " Manufacturer of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "memory_size" in data_keys:
                    data_keys.remove("memory_size")
                    data__memorysize = data["memory_size"]
                    if (
                        not isinstance(data__memorysize, (int, NoneType))
                        and not (
                            isinstance(data__memorysize, float)
                            and data__memorysize.is_integer()
                        )
                        or isinstance(data__memorysize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".memory_size must be integer or null",
                            value=data__memorysize,
                            name="" + (name_prefix or "data") + ".memory_size",
                            definition={
                                "description": " Total memory available in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__memorysize, (int, float, Decimal)):
                        if data__memorysize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".memory_size must be bigger than or equal to 0.0",
                                value=data__memorysize,
                                name="" + (name_prefix or "data") + ".memory_size",
                                definition={
                                    "description": " Total memory available in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "model" in data_keys:
                    data_keys.remove("model")
                    data__model = data["model"]
                    if not isinstance(data__model, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".model must be string or null",
                            value=data__model,
                            name="" + (name_prefix or "data") + ".model",
                            definition={
                                "description": " Device model.\n\n This, for example, can be `Samsung Galaxy S3`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "model_id" in data_keys:
                    data_keys.remove("model_id")
                    data__modelid = data["model_id"]
                    if not isinstance(data__modelid, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".model_id must be string or null",
                            value=data__modelid,
                            name="" + (name_prefix or "data") + ".model_id",
                            definition={
                                "description": " Device model (internal identifier).\n\n An internal hardware revision to identify the device exactly.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "name" in data_keys:
                    data_keys.remove("name")
                    data__name = data["name"]
                    if not isinstance(data__name, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".name must be string or null",
                            value=data__name,
                            name="" + (name_prefix or "data") + ".name",
                            definition={
                                "description": " Name of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "online" in data_keys:
                    data_keys.remove("online")
                    data__online = data["online"]
                    if not isinstance(data__online, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".online must be boolean or null",
                            value=data__online,
                            name="" + (name_prefix or "data") + ".online",
                            definition={
                                "description": " Whether the device was online or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "orientation" in data_keys:
                    data_keys.remove("orientation")
                    data__orientation = data["orientation"]
                    if not isinstance(data__orientation, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".orientation must be string or null",
                            value=data__orientation,
                            name="" + (name_prefix or "data") + ".orientation",
                            definition={
                                "description": " Current screen orientation.\n\n This can be a string `portrait` or `landscape` to define the orientation of a device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "processor_count" in data_keys:
                    data_keys.remove("processor_count")
                    data__processorcount = data["processor_count"]
                    if (
                        not isinstance(data__processorcount, (int, NoneType))
                        and not (
                            isinstance(data__processorcount, float)
                            and data__processorcount.is_integer()
                        )
                        or isinstance(data__processorcount, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".processor_count must be integer or null",
                            value=data__processorcount,
                            name="" + (name_prefix or "data") + ".processor_count",
                            definition={
                                "description": ' Number of "logical processors".\n\n For example, 8.',
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__processorcount, (int, float, Decimal)):
                        if data__processorcount < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".processor_count must be bigger than or equal to 0.0",
                                value=data__processorcount,
                                name="" + (name_prefix or "data") + ".processor_count",
                                definition={
                                    "description": ' Number of "logical processors".\n\n For example, 8.',
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "processor_frequency" in data_keys:
                    data_keys.remove("processor_frequency")
                    data__processorfrequency = data["processor_frequency"]
                    if (
                        not isinstance(data__processorfrequency, (int, NoneType))
                        and not (
                            isinstance(data__processorfrequency, float)
                            and data__processorfrequency.is_integer()
                        )
                        or isinstance(data__processorfrequency, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".processor_frequency must be integer or null",
                            value=data__processorfrequency,
                            name="" + (name_prefix or "data") + ".processor_frequency",
                            definition={
                                "description": " Processor frequency in MHz.\n\n Note that the actual CPU frequency might vary depending on current load and\n power conditions, especially on low-powered devices like phones and laptops.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__processorfrequency, (int, float, Decimal)):
                        if data__processorfrequency < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".processor_frequency must be bigger than or equal to 0.0",
                                value=data__processorfrequency,
                                name=""
                                + (name_prefix or "data")
                                + ".processor_frequency",
                                definition={
                                    "description": " Processor frequency in MHz.\n\n Note that the actual CPU frequency might vary depending on current load and\n power conditions, especially on low-powered devices like phones and laptops.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "screen_density" in data_keys:
                    data_keys.remove("screen_density")
                    data__screendensity = data["screen_density"]
                    if not isinstance(
                        data__screendensity, (int, float, Decimal, NoneType)
                    ) or isinstance(data__screendensity, bool):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".screen_density must be number or null",
                            value=data__screendensity,
                            name="" + (name_prefix or "data") + ".screen_density",
                            definition={
                                "description": " Device screen density.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            rule="type",
                        )
                if "screen_dpi" in data_keys:
                    data_keys.remove("screen_dpi")
                    data__screendpi = data["screen_dpi"]
                    if (
                        not isinstance(data__screendpi, (int, NoneType))
                        and not (
                            isinstance(data__screendpi, float)
                            and data__screendpi.is_integer()
                        )
                        or isinstance(data__screendpi, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".screen_dpi must be integer or null",
                            value=data__screendpi,
                            name="" + (name_prefix or "data") + ".screen_dpi",
                            definition={
                                "description": " Screen density as dots-per-inch.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__screendpi, (int, float, Decimal)):
                        if data__screendpi < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".screen_dpi must be bigger than or equal to 0.0",
                                value=data__screendpi,
                                name="" + (name_prefix or "data") + ".screen_dpi",
                                definition={
                                    "description": " Screen density as dots-per-inch.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "screen_height_pixels" in data_keys:
                    data_keys.remove("screen_height_pixels")
                    data__screenheightpixels = data["screen_height_pixels"]
                    if (
                        not isinstance(data__screenheightpixels, (int, NoneType))
                        and not (
                            isinstance(data__screenheightpixels, float)
                            and data__screenheightpixels.is_integer()
                        )
                        or isinstance(data__screenheightpixels, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".screen_height_pixels must be integer or null",
                            value=data__screenheightpixels,
                            name="" + (name_prefix or "data") + ".screen_height_pixels",
                            definition={
                                "description": " Height of the screen in pixels.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__screenheightpixels, (int, float, Decimal)):
                        if data__screenheightpixels < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".screen_height_pixels must be bigger than or equal to 0.0",
                                value=data__screenheightpixels,
                                name=""
                                + (name_prefix or "data")
                                + ".screen_height_pixels",
                                definition={
                                    "description": " Height of the screen in pixels.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "screen_resolution" in data_keys:
                    data_keys.remove("screen_resolution")
                    data__screenresolution = data["screen_resolution"]
                    if not isinstance(data__screenresolution, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".screen_resolution must be string or null",
                            value=data__screenresolution,
                            name="" + (name_prefix or "data") + ".screen_resolution",
                            definition={
                                "description": " Device screen resolution.\n\n (e.g.: 800x600, 3040x1444)",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "screen_width_pixels" in data_keys:
                    data_keys.remove("screen_width_pixels")
                    data__screenwidthpixels = data["screen_width_pixels"]
                    if (
                        not isinstance(data__screenwidthpixels, (int, NoneType))
                        and not (
                            isinstance(data__screenwidthpixels, float)
                            and data__screenwidthpixels.is_integer()
                        )
                        or isinstance(data__screenwidthpixels, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".screen_width_pixels must be integer or null",
                            value=data__screenwidthpixels,
                            name="" + (name_prefix or "data") + ".screen_width_pixels",
                            definition={
                                "description": " Width of the screen in pixels.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__screenwidthpixels, (int, float, Decimal)):
                        if data__screenwidthpixels < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".screen_width_pixels must be bigger than or equal to 0.0",
                                value=data__screenwidthpixels,
                                name=""
                                + (name_prefix or "data")
                                + ".screen_width_pixels",
                                definition={
                                    "description": " Width of the screen in pixels.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "simulator" in data_keys:
                    data_keys.remove("simulator")
                    data__simulator = data["simulator"]
                    if not isinstance(data__simulator, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".simulator must be boolean or null",
                            value=data__simulator,
                            name="" + (name_prefix or "data") + ".simulator",
                            definition={
                                "description": " Simulator/prod indicator.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "storage_size" in data_keys:
                    data_keys.remove("storage_size")
                    data__storagesize = data["storage_size"]
                    if (
                        not isinstance(data__storagesize, (int, NoneType))
                        and not (
                            isinstance(data__storagesize, float)
                            and data__storagesize.is_integer()
                        )
                        or isinstance(data__storagesize, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".storage_size must be integer or null",
                            value=data__storagesize,
                            name="" + (name_prefix or "data") + ".storage_size",
                            definition={
                                "description": " Total storage size of the device in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__storagesize, (int, float, Decimal)):
                        if data__storagesize < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".storage_size must be bigger than or equal to 0.0",
                                value=data__storagesize,
                                name="" + (name_prefix or "data") + ".storage_size",
                                definition={
                                    "description": " Total storage size of the device in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "supports_accelerometer" in data_keys:
                    data_keys.remove("supports_accelerometer")
                    data__supportsaccelerometer = data["supports_accelerometer"]
                    if not isinstance(data__supportsaccelerometer, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_accelerometer must be boolean or null",
                            value=data__supportsaccelerometer,
                            name=""
                            + (name_prefix or "data")
                            + ".supports_accelerometer",
                            definition={
                                "description": " Whether the accelerometer is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "supports_audio" in data_keys:
                    data_keys.remove("supports_audio")
                    data__supportsaudio = data["supports_audio"]
                    if not isinstance(data__supportsaudio, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_audio must be boolean or null",
                            value=data__supportsaudio,
                            name="" + (name_prefix or "data") + ".supports_audio",
                            definition={
                                "description": " Whether audio is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "supports_gyroscope" in data_keys:
                    data_keys.remove("supports_gyroscope")
                    data__supportsgyroscope = data["supports_gyroscope"]
                    if not isinstance(data__supportsgyroscope, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_gyroscope must be boolean or null",
                            value=data__supportsgyroscope,
                            name="" + (name_prefix or "data") + ".supports_gyroscope",
                            definition={
                                "description": " Whether the gyroscope is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "supports_location_service" in data_keys:
                    data_keys.remove("supports_location_service")
                    data__supportslocationservice = data["supports_location_service"]
                    if not isinstance(data__supportslocationservice, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_location_service must be boolean or null",
                            value=data__supportslocationservice,
                            name=""
                            + (name_prefix or "data")
                            + ".supports_location_service",
                            definition={
                                "description": " Whether location support is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "supports_vibration" in data_keys:
                    data_keys.remove("supports_vibration")
                    data__supportsvibration = data["supports_vibration"]
                    if not isinstance(data__supportsvibration, (bool, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".supports_vibration must be boolean or null",
                            value=data__supportsvibration,
                            name="" + (name_prefix or "data") + ".supports_vibration",
                            definition={
                                "description": " Whether vibration is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            rule="type",
                        )
                if "timezone" in data_keys:
                    data_keys.remove("timezone")
                    data__timezone = data["timezone"]
                    if not isinstance(data__timezone, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".timezone must be string or null",
                            value=data__timezone,
                            name="" + (name_prefix or "data") + ".timezone",
                            definition={
                                "description": " Timezone of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "usable_memory" in data_keys:
                    data_keys.remove("usable_memory")
                    data__usablememory = data["usable_memory"]
                    if (
                        not isinstance(data__usablememory, (int, NoneType))
                        and not (
                            isinstance(data__usablememory, float)
                            and data__usablememory.is_integer()
                        )
                        or isinstance(data__usablememory, bool)
                    ):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".usable_memory must be integer or null",
                            value=data__usablememory,
                            name="" + (name_prefix or "data") + ".usable_memory",
                            definition={
                                "description": " How much memory is usable for the app in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            rule="type",
                        )
                    if isinstance(data__usablememory, (int, float, Decimal)):
                        if data__usablememory < 0.0:
                            raise JsonSchemaValueException(
                                ""
                                + (name_prefix or "data")
                                + ".usable_memory must be bigger than or equal to 0.0",
                                value=data__usablememory,
                                name="" + (name_prefix or "data") + ".usable_memory",
                                definition={
                                    "description": " How much memory is usable for the app in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                rule="minimum",
                            )
                if "uuid" in data_keys:
                    data_keys.remove("uuid")
                    data__uuid = data["uuid"]
                    if not isinstance(data__uuid, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".uuid must be string or null",
                            value=data__uuid,
                            name="" + (name_prefix or "data") + ".uuid",
                            definition={
                                "description": " UUID of the device.",
                                "default": None,
                                "type": ["string", "null"],
                                "format": "uuid",
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "arch": {
                                    "description": " Native cpu architecture of the device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "battery_level": {
                                    "description": " Current battery level in %.\n\n If the device has a battery, this can be a floating point value defining the battery level\n (in the range 0-100).",
                                    "default": None,
                                    "type": ["number", "null"],
                                    "format": "double",
                                },
                                "battery_status": {
                                    "description": " Status of the device's battery.\n\n For example, `Unknown`, `Charging`, `Discharging`, `NotCharging`, `Full`.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "boot_time": {
                                    "description": " Indicator when the device was booted.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "brand": {
                                    "description": " Brand of the device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "charging": {
                                    "description": " Whether the device was charging or not.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "cpu_description": {
                                    "description": " CPU description.\n\n For example, Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "device_type": {
                                    "description": " Kind of device the application is running on.\n\n For example, `Unknown`, `Handheld`, `Console`, `Desktop`.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "device_unique_identifier": {
                                    "description": " Unique device identifier.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "external_free_storage": {
                                    "description": " Free size of the attached external storage in bytes (eg: android SDK card).",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "external_storage_size": {
                                    "description": " Total size of the attached external storage in bytes (eg: android SDK card).",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "family": {
                                    "description": " Family of the device model.\n\n This is usually the common part of model names across generations. For instance, `iPhone`\n would be a reasonable family, so would be `Samsung Galaxy`.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "free_memory": {
                                    "description": " How much memory is still available in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "free_storage": {
                                    "description": " How much storage is free in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "locale": {
                                    "description": " ISO 639-1 code of the locale the device is set to.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "low_memory": {
                                    "description": " Whether the device was low on memory.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "manufacturer": {
                                    "description": " Manufacturer of the device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "memory_size": {
                                    "description": " Total memory available in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "model": {
                                    "description": " Device model.\n\n This, for example, can be `Samsung Galaxy S3`.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "model_id": {
                                    "description": " Device model (internal identifier).\n\n An internal hardware revision to identify the device exactly.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "name": {
                                    "description": " Name of the device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "online": {
                                    "description": " Whether the device was online or not.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "orientation": {
                                    "description": " Current screen orientation.\n\n This can be a string `portrait` or `landscape` to define the orientation of a device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "processor_count": {
                                    "description": ' Number of "logical processors".\n\n For example, 8.',
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "processor_frequency": {
                                    "description": " Processor frequency in MHz.\n\n Note that the actual CPU frequency might vary depending on current load and\n power conditions, especially on low-powered devices like phones and laptops.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "screen_density": {
                                    "description": " Device screen density.",
                                    "default": None,
                                    "type": ["number", "null"],
                                    "format": "double",
                                },
                                "screen_dpi": {
                                    "description": " Screen density as dots-per-inch.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "screen_height_pixels": {
                                    "description": " Height of the screen in pixels.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "screen_resolution": {
                                    "description": " Device screen resolution.\n\n (e.g.: 800x600, 3040x1444)",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "screen_width_pixels": {
                                    "description": " Width of the screen in pixels.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "simulator": {
                                    "description": " Simulator/prod indicator.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "storage_size": {
                                    "description": " Total storage size of the device in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "supports_accelerometer": {
                                    "description": " Whether the accelerometer is available on the device.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "supports_audio": {
                                    "description": " Whether audio is available on the device.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "supports_gyroscope": {
                                    "description": " Whether the gyroscope is available on the device.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "supports_location_service": {
                                    "description": " Whether location support is available on the device.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "supports_vibration": {
                                    "description": " Whether vibration is available on the device.",
                                    "default": None,
                                    "type": ["boolean", "null"],
                                },
                                "timezone": {
                                    "description": " Timezone of the device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "usable_memory": {
                                    "description": " How much memory is usable for the app in bytes.",
                                    "default": None,
                                    "type": ["integer", "null"],
                                    "format": "uint64",
                                    "minimum": 0.0,
                                },
                                "uuid": {
                                    "description": " UUID of the device.",
                                    "default": None,
                                    "type": ["string", "null"],
                                    "format": "uuid",
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count163 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count163:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": " Device information.\n\n Device context describes the device that caused the event. This is most appropriate for mobile\n applications.",
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "arch": {
                                "description": " Native cpu architecture of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "battery_level": {
                                "description": " Current battery level in %.\n\n If the device has a battery, this can be a floating point value defining the battery level\n (in the range 0-100).",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "battery_status": {
                                "description": " Status of the device's battery.\n\n For example, `Unknown`, `Charging`, `Discharging`, `NotCharging`, `Full`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "boot_time": {
                                "description": " Indicator when the device was booted.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "brand": {
                                "description": " Brand of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "charging": {
                                "description": " Whether the device was charging or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "cpu_description": {
                                "description": " CPU description.\n\n For example, Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "device_type": {
                                "description": " Kind of device the application is running on.\n\n For example, `Unknown`, `Handheld`, `Console`, `Desktop`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "device_unique_identifier": {
                                "description": " Unique device identifier.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "external_free_storage": {
                                "description": " Free size of the attached external storage in bytes (eg: android SDK card).",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "external_storage_size": {
                                "description": " Total size of the attached external storage in bytes (eg: android SDK card).",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "family": {
                                "description": " Family of the device model.\n\n This is usually the common part of model names across generations. For instance, `iPhone`\n would be a reasonable family, so would be `Samsung Galaxy`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "free_memory": {
                                "description": " How much memory is still available in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "free_storage": {
                                "description": " How much storage is free in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "locale": {
                                "description": " ISO 639-1 code of the locale the device is set to.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "low_memory": {
                                "description": " Whether the device was low on memory.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "manufacturer": {
                                "description": " Manufacturer of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "memory_size": {
                                "description": " Total memory available in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "model": {
                                "description": " Device model.\n\n This, for example, can be `Samsung Galaxy S3`.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "model_id": {
                                "description": " Device model (internal identifier).\n\n An internal hardware revision to identify the device exactly.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "name": {
                                "description": " Name of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "online": {
                                "description": " Whether the device was online or not.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "orientation": {
                                "description": " Current screen orientation.\n\n This can be a string `portrait` or `landscape` to define the orientation of a device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "processor_count": {
                                "description": ' Number of "logical processors".\n\n For example, 8.',
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "processor_frequency": {
                                "description": " Processor frequency in MHz.\n\n Note that the actual CPU frequency might vary depending on current load and\n power conditions, especially on low-powered devices like phones and laptops.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "screen_density": {
                                "description": " Device screen density.",
                                "default": None,
                                "type": ["number", "null"],
                                "format": "double",
                            },
                            "screen_dpi": {
                                "description": " Screen density as dots-per-inch.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "screen_height_pixels": {
                                "description": " Height of the screen in pixels.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "screen_resolution": {
                                "description": " Device screen resolution.\n\n (e.g.: 800x600, 3040x1444)",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "screen_width_pixels": {
                                "description": " Width of the screen in pixels.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "simulator": {
                                "description": " Simulator/prod indicator.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "storage_size": {
                                "description": " Total storage size of the device in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "supports_accelerometer": {
                                "description": " Whether the accelerometer is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_audio": {
                                "description": " Whether audio is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_gyroscope": {
                                "description": " Whether the gyroscope is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_location_service": {
                                "description": " Whether location support is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "supports_vibration": {
                                "description": " Whether vibration is available on the device.",
                                "default": None,
                                "type": ["boolean", "null"],
                            },
                            "timezone": {
                                "description": " Timezone of the device.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "usable_memory": {
                                "description": " How much memory is usable for the app in bytes.",
                                "default": None,
                                "type": ["integer", "null"],
                                "format": "uint64",
                                "minimum": 0.0,
                            },
                            "uuid": {
                                "description": " UUID of the device.",
                                "default": None,
                                "type": ["string", "null"],
                                "format": "uuid",
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data


def validate___definitions_breadcrumb(data, custom_formats={}, name_prefix=None):
    data_any_of_count164 = 0
    if not data_any_of_count164:
        try:
            if not isinstance(data, (dict)):
                raise JsonSchemaValueException(
                    "" + (name_prefix or "data") + " must be object",
                    value=data,
                    name="" + (name_prefix or "data") + "",
                    definition={
                        "type": "object",
                        "properties": {
                            "category": {
                                "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "data": {
                                "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "event_id": {
                                "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "level": {
                                "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Severity level of an event or breadcrumb.",
                                        "type": "string",
                                        "enum": [
                                            "debug",
                                            "info",
                                            "warning",
                                            "error",
                                            "fatal",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "message": {
                                "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "timestamp": {
                                "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "type": {
                                "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    },
                    rule="type",
                )
            data_is_dict = isinstance(data, dict)
            if data_is_dict:
                data_keys = set(data.keys())
                if "category" in data_keys:
                    data_keys.remove("category")
                    data__category = data["category"]
                    if not isinstance(data__category, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".category must be string or null",
                            value=data__category,
                            name="" + (name_prefix or "data") + ".category",
                            definition={
                                "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "data" in data_keys:
                    data_keys.remove("data")
                    data__data = data["data"]
                    if not isinstance(data__data, (dict, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".data must be object or null",
                            value=data__data,
                            name="" + (name_prefix or "data") + ".data",
                            definition={
                                "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            rule="type",
                        )
                    data__data_is_dict = isinstance(data__data, dict)
                    if data__data_is_dict:
                        data__data_keys = set(data__data.keys())
                if "event_id" in data_keys:
                    data_keys.remove("event_id")
                    data__eventid = data["event_id"]
                    data__eventid_any_of_count165 = 0
                    if not data__eventid_any_of_count165:
                        try:
                            validate___definitions_eventid(
                                data__eventid,
                                custom_formats,
                                (name_prefix or "data") + ".event_id",
                            )
                            data__eventid_any_of_count165 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__eventid_any_of_count165:
                        try:
                            if not isinstance(data__eventid, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".event_id must be null",
                                    value=data__eventid,
                                    name="" + (name_prefix or "data") + ".event_id",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__eventid_any_of_count165 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__eventid_any_of_count165:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".event_id cannot be validated by any definition",
                            value=data__eventid,
                            name="" + (name_prefix or "data") + ".event_id",
                            definition={
                                "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "level" in data_keys:
                    data_keys.remove("level")
                    data__level = data["level"]
                    data__level_any_of_count166 = 0
                    if not data__level_any_of_count166:
                        try:
                            validate___definitions_level(
                                data__level,
                                custom_formats,
                                (name_prefix or "data") + ".level",
                            )
                            data__level_any_of_count166 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__level_any_of_count166:
                        try:
                            if not isinstance(data__level, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".level must be null",
                                    value=data__level,
                                    name="" + (name_prefix or "data") + ".level",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__level_any_of_count166 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__level_any_of_count166:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".level cannot be validated by any definition",
                            value=data__level,
                            name="" + (name_prefix or "data") + ".level",
                            definition={
                                "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Severity level of an event or breadcrumb.",
                                        "type": "string",
                                        "enum": [
                                            "debug",
                                            "info",
                                            "warning",
                                            "error",
                                            "fatal",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "message" in data_keys:
                    data_keys.remove("message")
                    data__message = data["message"]
                    if not isinstance(data__message, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".message must be string or null",
                            value=data__message,
                            name="" + (name_prefix or "data") + ".message",
                            definition={
                                "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if "timestamp" in data_keys:
                    data_keys.remove("timestamp")
                    data__timestamp = data["timestamp"]
                    data__timestamp_any_of_count167 = 0
                    if not data__timestamp_any_of_count167:
                        try:
                            validate___definitions_timestamp(
                                data__timestamp,
                                custom_formats,
                                (name_prefix or "data") + ".timestamp",
                            )
                            data__timestamp_any_of_count167 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__timestamp_any_of_count167:
                        try:
                            if not isinstance(data__timestamp, (NoneType)):
                                raise JsonSchemaValueException(
                                    ""
                                    + (name_prefix or "data")
                                    + ".timestamp must be null",
                                    value=data__timestamp,
                                    name="" + (name_prefix or "data") + ".timestamp",
                                    definition={"type": "null"},
                                    rule="type",
                                )
                            data__timestamp_any_of_count167 += 1
                        except JsonSchemaValueException:
                            pass
                    if not data__timestamp_any_of_count167:
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".timestamp cannot be validated by any definition",
                            value=data__timestamp,
                            name="" + (name_prefix or "data") + ".timestamp",
                            definition={
                                "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            rule="anyOf",
                        )
                if "type" in data_keys:
                    data_keys.remove("type")
                    data__type = data["type"]
                    if not isinstance(data__type, (str, NoneType)):
                        raise JsonSchemaValueException(
                            ""
                            + (name_prefix or "data")
                            + ".type must be string or null",
                            value=data__type,
                            name="" + (name_prefix or "data") + ".type",
                            definition={
                                "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            rule="type",
                        )
                if data_keys:
                    raise JsonSchemaValueException(
                        ""
                        + (name_prefix or "data")
                        + " must not contain "
                        + str(data_keys)
                        + " properties",
                        value=data,
                        name="" + (name_prefix or "data") + "",
                        definition={
                            "type": "object",
                            "properties": {
                                "category": {
                                    "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "data": {
                                    "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                    "default": None,
                                    "type": ["object", "null"],
                                    "additionalProperties": True,
                                },
                                "event_id": {
                                    "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": " Wrapper around a UUID with slightly different formatting.",
                                            "anyOf": [
                                                {"type": "string", "format": "uuid"}
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "level": {
                                    "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Severity level of an event or breadcrumb.",
                                            "type": "string",
                                            "enum": [
                                                "debug",
                                                "info",
                                                "warning",
                                                "error",
                                                "fatal",
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "message": {
                                    "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                                "timestamp": {
                                    "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                    "default": None,
                                    "anyOf": [
                                        {
                                            "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                            "anyOf": [
                                                {"type": "number", "format": "double"},
                                                {"type": "string"},
                                            ],
                                        },
                                        {"type": "null"},
                                    ],
                                },
                                "type": {
                                    "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                    "default": None,
                                    "type": ["string", "null"],
                                },
                            },
                            "additionalProperties": False,
                        },
                        rule="additionalProperties",
                    )
            data_any_of_count164 += 1
        except JsonSchemaValueException:
            pass
    if not data_any_of_count164:
        raise JsonSchemaValueException(
            "" + (name_prefix or "data") + " cannot be validated by any definition",
            value=data,
            name="" + (name_prefix or "data") + "",
            definition={
                "description": ' The Breadcrumbs Interface specifies a series of application events, or "breadcrumbs", that\n occurred before an event.\n\n An event may contain one or more breadcrumbs in an attribute named `breadcrumbs`. The entries\n are ordered from oldest to newest. Consequently, the last entry in the list should be the last\n entry before the event occurred.\n\n While breadcrumb attributes are not strictly validated in Sentry, a breadcrumb is most useful\n when it includes at least a `timestamp` and `type`, `category` or `message`. The rendering of\n breadcrumbs in Sentry depends on what is provided.\n\n The following example illustrates the breadcrumbs part of the event payload and omits other\n attributes for simplicity.\n\n ```json\n {\n   "breadcrumbs": {\n     "values": [\n       {\n         "timestamp": "2016-04-20T20:55:53.845Z",\n         "message": "Something happened",\n         "category": "log",\n         "data": {\n           "foo": "bar",\n           "blub": "blah"\n         }\n       },\n       {\n         "timestamp": "2016-04-20T20:55:53.847Z",\n         "type": "navigation",\n         "data": {\n           "from": "/login",\n           "to": "/dashboard"\n         }\n       }\n     ]\n   }\n }\n ```',
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "category": {
                                "description": " A dotted string indicating what the crumb is or from where it comes. _Optional._\n\n Typically it is a module name or a descriptive string. For instance, _ui.click_ could be\n used to indicate that a click happened in the UI or _flask_ could be used to indicate that\n the event originated in the Flask framework.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "data": {
                                "description": " Arbitrary data associated with this breadcrumb.\n\n Contains a dictionary whose contents depend on the breadcrumb `type`. Additional parameters\n that are unsupported by the type are rendered as a key/value table.",
                                "default": None,
                                "type": ["object", "null"],
                                "additionalProperties": True,
                            },
                            "event_id": {
                                "description": " Identifier of the event this breadcrumb belongs to.\n\n Sentry events can appear as breadcrumbs in other events as long as they have occurred in the\n same organization. This identifier links to the original event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": " Wrapper around a UUID with slightly different formatting.",
                                        "anyOf": [{"type": "string", "format": "uuid"}],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "level": {
                                "description": " Severity level of the breadcrumb. _Optional._\n\n Allowed values are, from highest to lowest: `fatal`, `error`, `warning`, `info`, and\n `debug`. Levels are used in the UI to emphasize and deemphasize the crumb. Defaults to\n `info`.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Severity level of an event or breadcrumb.",
                                        "type": "string",
                                        "enum": [
                                            "debug",
                                            "info",
                                            "warning",
                                            "error",
                                            "fatal",
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "message": {
                                "description": " Human readable message for the breadcrumb.\n\n If a message is provided, it is rendered as text with all whitespace preserved. Very long\n text might be truncated in the UI.",
                                "default": None,
                                "type": ["string", "null"],
                            },
                            "timestamp": {
                                "description": " The timestamp of the breadcrumb. Recommended.\n\n A timestamp representing when the breadcrumb occurred. The format is either a string as\n defined in [RFC 3339](https://tools.ietf.org/html/rfc3339) or a numeric (integer or float)\n value representing the number of seconds that have elapsed since the [Unix\n epoch](https://en.wikipedia.org/wiki/Unix_time).\n\n Breadcrumbs are most useful when they include a timestamp, as it creates a timeline leading\n up to an event.",
                                "default": None,
                                "anyOf": [
                                    {
                                        "description": "Can be a ISO-8601 formatted string or a unix timestamp in seconds (floating point values allowed).\n\nMust be UTC.",
                                        "anyOf": [
                                            {"type": "number", "format": "double"},
                                            {"type": "string"},
                                        ],
                                    },
                                    {"type": "null"},
                                ],
                            },
                            "type": {
                                "description": " The type of the breadcrumb. _Optional_, defaults to `default`.\n\n - `default`: Describes a generic breadcrumb. This is typically a log message or\n   user-generated breadcrumb. The `data` field is entirely undefined and as such, completely\n   rendered as a key/value table.\n\n - `navigation`: Describes a navigation breadcrumb. A navigation event can be a URL change\n   in a web application, or a UI transition in a mobile or desktop application, etc.\n\n   Such a breadcrumb's `data` object has the required fields `from` and `to`, which\n   represent an application route/url each.\n\n - `http`: Describes an HTTP request breadcrumb. This represents an HTTP request transmitted\n   from your application. This could be an AJAX request from a web application, or a\n   server-to-server HTTP request to an API service provider, etc.\n\n   Such a breadcrumb's `data` property has the fields `url`, `method`, `status_code`\n   (integer) and `reason` (string).",
                                "default": None,
                                "type": ["string", "null"],
                            },
                        },
                        "additionalProperties": False,
                    }
                ],
            },
            rule="anyOf",
        )
    return data
