{
  "type": "record",
  "Aspect": {
    "name": "assertionInferenceDetails"
  },
  "name": "AssertionInferenceDetails",
  "namespace": "com.linkedin.pegasus2avro.assertion",
  "fields": [
    {
      "type": [
        "null",
        "string"
      ],
      "name": "modelId",
      "default": null,
      "doc": "The id of the assertion prediction model."
    },
    {
      "type": [
        "null",
        "string"
      ],
      "name": "modelVersion",
      "default": null,
      "doc": "The version of the model used to make the assertion."
    },
    {
      "type": [
        "null",
        "float"
      ],
      "name": "confidence",
      "default": null,
      "doc": "The confidence of the inference, if available."
    },
    {
      "type": [
        "null",
        {
          "type": "map",
          "values": "string"
        }
      ],
      "name": "parameters",
      "default": null,
      "doc": "The parameters used to make the inference."
    },
    {
      "Searchable": {},
      "type": [
        "null",
        "long"
      ],
      "name": "generatedAt",
      "default": null,
      "doc": "The time the inferred assertion was generated at in milliseconds."
    },
    {
      "type": [
        "null",
        {
          "type": "record",
          "name": "AssertionAdjustmentSettings",
          "namespace": "com.linkedin.pegasus2avro.assertion",
          "fields": [
            {
              "type": [
                "null",
                {
                  "type": "enum",
                  "name": "AdjustmentAlgorithm",
                  "namespace": "com.linkedin.pegasus2avro.assertion",
                  "symbols": [
                    "CUSTOM"
                  ],
                  "doc": "The adjustment algorithm to use when determining the threshold for an assertion."
                }
              ],
              "name": "algorithm",
              "default": null,
              "doc": "The algorithm to use to adjust assertion values to power the sensitivity control feature\n\nNote that for algorithm \"STDDEV\" which leverages the standard deviation of trailing values,\nthe \"stdDev\" field must be provided inside of AssertionEvaluationContext.pdl by the offline pipeline."
            },
            {
              "type": [
                "null",
                "string"
              ],
              "name": "algorithmName",
              "default": null,
              "doc": "The name of the algorithm to use to adjust assertion values to power the sensitivity control feature"
            },
            {
              "type": [
                "null",
                {
                  "type": "map",
                  "values": "string"
                }
              ],
              "name": "context",
              "default": null,
              "doc": "The context to use to adjust assertion values"
            },
            {
              "type": [
                "null",
                {
                  "type": "array",
                  "items": {
                    "type": "record",
                    "name": "AssertionExclusionWindow",
                    "namespace": "com.linkedin.pegasus2avro.assertion",
                    "fields": [
                      {
                        "type": {
                          "type": "enum",
                          "symbolDocs": {
                            "FIXED_RANGE": "One-off time range to exclude",
                            "HOLIDAY": "Specific holiday to exclude",
                            "WEEKLY": "Recurring time range to exclude each week"
                          },
                          "name": "AssertionExclusionWindowType",
                          "namespace": "com.linkedin.pegasus2avro.assertion",
                          "symbols": [
                            "FIXED_RANGE",
                            "WEEKLY",
                            "HOLIDAY"
                          ]
                        },
                        "name": "type",
                        "doc": "The type of exclusion window."
                      },
                      {
                        "type": [
                          "null",
                          "string"
                        ],
                        "name": "displayName",
                        "default": null,
                        "doc": "Display name for this exclusion window"
                      },
                      {
                        "type": [
                          "null",
                          {
                            "type": "record",
                            "name": "AbsoluteTimeWindow",
                            "namespace": "com.linkedin.pegasus2avro.timeseries",
                            "fields": [
                              {
                                "type": "long",
                                "name": "startTimeMillis",
                                "doc": "Start time as epoch at UTC."
                              },
                              {
                                "type": "long",
                                "name": "endTimeMillis",
                                "doc": "End time as epoch at UTC."
                              }
                            ]
                          }
                        ],
                        "name": "fixedRange",
                        "default": null,
                        "doc": "Date window for one-off exclusion range\nOnly used when type is FIXED_RANGE"
                      },
                      {
                        "type": [
                          "null",
                          {
                            "type": "record",
                            "name": "WeeklyWindow",
                            "namespace": "com.linkedin.pegasus2avro.timeseries",
                            "fields": [
                              {
                                "type": {
                                  "type": "array",
                                  "items": {
                                    "type": "enum",
                                    "name": "DayOfWeek",
                                    "namespace": "com.linkedin.pegasus2avro.timeseries",
                                    "symbols": [
                                      "MONDAY",
                                      "TUESDAY",
                                      "WEDNESDAY",
                                      "THURSDAY",
                                      "FRIDAY",
                                      "SATURDAY",
                                      "SUNDAY"
                                    ]
                                  }
                                },
                                "name": "daysOfWeek",
                                "doc": "Days of the week to include in the window.\nIf not specified, all days are included."
                              },
                              {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "name": "startTime",
                                "default": null,
                                "doc": "Start time for the window on each specified day.\nFormat: \"HH:MM\" in 24-hour format (e.g., \"09:00\" for 9am, \"17:30\" for 5:30pm).\nIf not specified, defaults to start of day (\"00:00\")."
                              },
                              {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "name": "endTime",
                                "default": null,
                                "doc": "End time for the window on each specified day.\nFormat: \"HH:MM\" in 24-hour format (e.g., \"17:00\" for 5pm, \"23:59\" for end of day).\nIf not specified, defaults to end of day (\"23:59\")."
                              },
                              {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "name": "timezone",
                                "default": null,
                                "doc": "Time zone to interpret start and end times in.\nUses standard time zone identifiers (e.g., \"America/Los_Angeles\", \"UTC\").\nIf not specified, defaults to UTC."
                              }
                            ],
                            "doc": "Represents a recurring time window that repeats weekly.\nUsed to define exclusion periods for model training based on day of week and time of day."
                          }
                        ],
                        "name": "weekly",
                        "default": null,
                        "doc": "Window of time each week to exclude."
                      },
                      {
                        "type": [
                          "null",
                          {
                            "type": "record",
                            "name": "HolidayWindow",
                            "namespace": "com.linkedin.pegasus2avro.timeseries",
                            "fields": [
                              {
                                "type": "string",
                                "name": "name",
                                "doc": "The name of the holiday."
                              },
                              {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "name": "region",
                                "default": null,
                                "doc": "The region of the holiday.\nExample: 'US'"
                              },
                              {
                                "type": [
                                  "null",
                                  "string"
                                ],
                                "name": "timezone",
                                "default": null,
                                "doc": "The timezone of the holiday.\nExample: 'America/New_York'"
                              }
                            ]
                          }
                        ],
                        "name": "holiday",
                        "default": null,
                        "doc": "The holiday to exclude\nOnly used when type is HOLIDAY"
                      }
                    ],
                    "doc": "Information about an assertion exclusion window.\nThis is used to exclude specific time periods from assertion evaluation or training.\nFor example, excluding holidays, weekends, or known anomalous periods.\nSupports various recurrence patterns: one-off exclusions, or recurring exclusions\n(yearly, monthly, weekly, daily, or specific holidays)."
                  }
                }
              ],
              "name": "exclusionWindows",
              "default": null,
              "doc": "The user-defined exclusion windows for the assertion."
            },
            {
              "type": [
                "null",
                {
                  "type": "array",
                  "items": "com.linkedin.pegasus2avro.assertion.AssertionExclusionWindow"
                }
              ],
              "name": "anomalyExclusionWindows",
              "default": null,
              "doc": "Exclude the anomaly data points for the assertion. These are detected automatically by the system."
            },
            {
              "type": [
                "null",
                "long"
              ],
              "name": "trainingDataLookbackWindowDays",
              "default": null,
              "doc": "The lookback window configuration for retrieving training data points.\nDefines how far back in time to look when gathering data for training.\nDefaults to 60 days if not specified."
            },
            {
              "type": [
                "null",
                {
                  "type": "record",
                  "name": "AssertionMonitorSensitivity",
                  "namespace": "com.linkedin.pegasus2avro.assertion",
                  "fields": [
                    {
                      "type": "int",
                      "name": "level",
                      "doc": "The assertion monitor level from 0-10"
                    }
                  ],
                  "doc": "Assertion monitor sensitivity is a measure of how sensitive the assertion monitor is to the assertion condition."
                }
              ],
              "name": "sensitivity",
              "default": null,
              "doc": "The sensitivity level for an assertion"
            }
          ],
          "doc": "A set of settings that can be used to adjust assertion values\nNOTE: This is only applied against inferred assertions"
        }
      ],
      "name": "adjustmentSettings",
      "default": null,
      "doc": "The settings used to adjust the assertion."
    }
  ],
  "doc": "The details of an assertion that was inferred.\n\nDeprecated as an aspect for assertions!"
}